2014-10-08 69 views
0

我想在Windows Phone 8.1应用程序(WPF)中自定义我的视图。在我的桌面上的项目,我使用的是这样的:WPF - 在Windows Phone 8.1中使用触发器自定义视图

<Grid> 
    <Grid.Style> 
    <Style> 
     <Style.Triggers> 
     <DataTrigger Binding="{Binding IsTrueValue}" Value="False"> 
      <Setter Property="Visibility" Value="Hidden" /> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding IsTrueValue}" Value="True"> 
      <Setter Property="Visibility" Value="Visible" /> 
     </DataTrigger> 
     </Style.Triggers> 
    </Style> 
    </Grid.Style> 
</Grid> 

不幸的是Style.Triggers无法识别。

谢谢你的帮助。

+0

Windows Phone xaml不支持触发器。改为查找[VisualStateManager](http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.visualstatemanager)。 – Vlad 2014-10-08 21:06:51

回答

8

Windows Phone不使用WPF。您可以使用Windows Phone Silverlight或Windows Phone Runtime代码。所有这三个环境都使用Xaml,但确切的可用类是不同的。

虽然不是触发器直接支持外,Behaviors SDK定义了一个DataTrigger行为同样适用于Windows运行的应用程序。行为包含在Blend的资产窗格中,并且可以在其设计器中以可视方式设置。

xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" 
xmlns:Core="using:Microsoft.Xaml.Interactions.Core" 


<Grid> 
    <Interactivity:Interaction.Behaviors> 
     <Core:DataTriggerBehavior Binding="{Binding IsTrueValue}" Value="True"> 
      <Core:ChangePropertyAction PropertyName="Visibility"> 
       <Core:ChangePropertyAction.Value> 
        <Visibility>Visible</Visibility> 
       </Core:ChangePropertyAction.Value> 
      </Core:ChangePropertyAction> 
     </Core:DataTriggerBehavior> 
     <Core:DataTriggerBehavior Binding="{Binding IsTrueValue}" Value="False"> 
      <Core:ChangePropertyAction PropertyName="Visibility"> 
       <Core:ChangePropertyAction.Value> 
        <Visibility>Collapsed</Visibility> 
       </Core:ChangePropertyAction.Value> 
      </Core:ChangePropertyAction> 
     </Core:DataTriggerBehavior> 
    </Interactivity:Interaction.Behaviors> 
</Grid> 

正如弗拉德所说,您也可以使用VisualStateManager而不是直接设置Visibility属性。您可以使用DataTriggerBehavior触发GoToStateAction。

另请注意,Visibility.Hidden对于Windows Phone Runtime或Windows Phone Silverlight无效。两者都允许可见和折叠选项。

相关问题