将 AdaptiveTrigger.MinWindowWidth 设置为 TemplateBinding 会导致触发器永远不会执行
Setting AdaptiveTrigger.MinWindowWidth to TemplateBinding causes the trigger to never execute
目前我在 generic.xaml
中的一个自定义控件中有此代码
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="VisualStateNarrow">
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="VisualStateNarrowTrigger" MinWindowWidth="{TemplateBinding VisualStateNarrowMinWidth}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="PART_SPACER.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateNormal">
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="VisualStateNormalTrigger" MinWindowWidth="{TemplateBinding VisualStateNormalMinWidth}"/>
</VisualState.StateTriggers>
<VisualState.Setters/>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
其中VisualStateNarrowMinWidth
和VisualStateNormalMinWidth
为int类型的DependencyProperties,例如:
public int VisualStateNarrowMinWidth
{
get { return (int)GetValue(VisualStateNarrowMinWidthProperty); }
set { SetValue(VisualStateNarrowMinWidthProperty, value); }
}
public static readonly DependencyProperty VisualStateNarrowMinWidthProperty =
DependencyProperty.Register(nameof(VisualStateNarrowMinWidth), typeof(int), typeof(PageHeader), new PropertyMetadata(default(int)));
将 MinWindowWidth 设置为一个整数,如 0 表示窄,521 表示正常,使其执行得很好。我将如何使用它进行绑定?
绑定到 TemplatedParent,像这样:
<AdaptiveTrigger x:Name="VisualStateNarrowTrigger" MinWindowWidth="{Binding VisualStateNarrowMinWidth, RelativeSource={RelativeSource TemplatedParent}}" />
目前我在 generic.xaml
中的一个自定义控件中有此代码<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="VisualStateNarrow">
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="VisualStateNarrowTrigger" MinWindowWidth="{TemplateBinding VisualStateNarrowMinWidth}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="PART_SPACER.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateNormal">
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="VisualStateNormalTrigger" MinWindowWidth="{TemplateBinding VisualStateNormalMinWidth}"/>
</VisualState.StateTriggers>
<VisualState.Setters/>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
其中VisualStateNarrowMinWidth
和VisualStateNormalMinWidth
为int类型的DependencyProperties,例如:
public int VisualStateNarrowMinWidth
{
get { return (int)GetValue(VisualStateNarrowMinWidthProperty); }
set { SetValue(VisualStateNarrowMinWidthProperty, value); }
}
public static readonly DependencyProperty VisualStateNarrowMinWidthProperty =
DependencyProperty.Register(nameof(VisualStateNarrowMinWidth), typeof(int), typeof(PageHeader), new PropertyMetadata(default(int)));
将 MinWindowWidth 设置为一个整数,如 0 表示窄,521 表示正常,使其执行得很好。我将如何使用它进行绑定?
绑定到 TemplatedParent,像这样:
<AdaptiveTrigger x:Name="VisualStateNarrowTrigger" MinWindowWidth="{Binding VisualStateNarrowMinWidth, RelativeSource={RelativeSource TemplatedParent}}" />