目前我在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}}" />