2015-10-09 39 views
0

目前我有这样的代码在我的自定义控件一个内部generic.xaml设置AdaptiveTrigger.MinWindowWidth到TemplateBinding导致触发器不会执行

<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> 

VisualStateNarrowMinWidthVisualStateNormalMinWidth与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表示正常使其执行得很好。我将如何进行绑定工作?

回答

0

绑定到TemplatedParent,就像这样:

<AdaptiveTrigger x:Name="VisualStateNarrowTrigger" MinWindowWidth="{Binding VisualStateNarrowMinWidth, RelativeSource={RelativeSource TemplatedParent}}" /> 
+0

谢谢,这工作:) –

相关问题