2014-10-08 22 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無效。兩者都允許可見和摺疊選項。

相關問題