にサイズ変更されたときに、私はC#のユニバーサルアプリの世界では新しいですメッセージは、私は私のインターフェースが応答するために、画面が600未満である場合に、このメッセージを取得するために試してみました: 表示アプリケーションが
がそれですトリガーでそれを行うことは可能ですか?あなたはこのためにカスタムStateTriggerを作成することができ、ヘルプ
にサイズ変更されたときに、私はC#のユニバーサルアプリの世界では新しいですメッセージは、私は私のインターフェースが応答するために、画面が600未満である場合に、このメッセージを取得するために試してみました: 表示アプリケーションが
がそれですトリガーでそれを行うことは可能ですか?あなたはこのためにカスタムStateTriggerを作成することができ、ヘルプ
あなたは直接だけgridInstruction
を指定するウィンドウ10にXAMLを使用することができますあなたのデザインで、可視性をcollapsed
に設定します。画面の幅に基づいて適応型トリガを使用して、可視性を表示または縮小するように設定します。
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="WindowStates">
<VisualState x:Name="WideState">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="gridInstruction.Visibility" Value="Collapsed" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="NarrowState">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="gridInstruction.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
ため 感謝:
public enum LayoutStateType
{
TooSmall, BigEnough
}
public class LayoutTrigger : StateTriggerBase
{
public static readonly DependencyProperty MinimalStateWidthProperty = DependencyProperty.Register("MinimalStateWidth", typeof(double), typeof(LayoutTrigger), new PropertyMetadata(600.0, OnTriggerPropertyChanged));
public static readonly DependencyProperty LayoutStateProperty = DependencyProperty.Register("LayoutState", typeof(LayoutStateType), typeof(LayoutTrigger), new PropertyMetadata(LayoutStateType.Landscape, OnTriggerPropertyChanged));
public LayoutTrigger()
{
Window.Current.SizeChanged += Window_SizeChanged;
UpdateTrigger();
}
public double MinimalStateWidth
{
get
{
return (double)GetValue(MinimalStateWidthProperty);
}
set
{
SetValue(MinimalStateWidthProperty, value);
}
}
public LayoutStateType LayoutState
{
get
{
return (LayoutStateType)GetValue(LayoutStateProperty);
}
set
{
SetValue(LayoutStateProperty, value);
}
}
private static void OnTriggerPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var trigger = d as LayoutTrigger;
trigger.UpdateTrigger();
}
private void Window_SizeChanged(object sender, WindowSizeChangedEventArgs e)
{
UpdateTrigger();
}
private void UpdateTrigger()
{
switch (LayoutState)
{
case LayoutStateType.TooSmall:
if (Window.Current.Bounds.Width <= MinimalStateWidth)
{
SetActive(true);
}
else
{
SetActive(false);
}
break;
case LayoutStateType.BigEnough:
default:
if (Window.Current.Bounds.Width > MinimalStateWidth)
{
SetActive(false);
}
else
{
SetActive(true);
}
break;
}
}
}
あなたは視覚的な状態を設定するには、この状態のトリガーを使用することができます。
XAMLの使用法:「小さすぎる」のビジュアル状態で
<Grid>
<VisualStateManager.VisualStateGroups>
<!-- Visual states reflect the application's view state -->
<VisualStateGroup x:Name="ApplicationViewStates">
<VisualState x:Name="DefaultLayout">
<VisualState.StateTriggers>
<triggers:LayoutTrigger LayoutState="TooSmall" />
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="PortraitLayout">
<VisualState.StateTriggers>
<triggers:LayoutTrigger LayoutState="BigEnough" />
</VisualState.StateTriggers>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid Style="{StaticResource LayoutRootStyle}">
、あなたがあなたのメッセージを隠し、表示したいものは何でも隠す
あなたの返信にはグレントーマス氏に感謝します:D – Jina
返信いただきありがとうございます:D – Jina