您希望使用樣式設定器將混合行為設定為應用程式中的所有按鈕。但是,您遇到錯誤“屬性“Behaviors”沒有可存取的設定器”。
這裡的主要挑戰是行為與特定物件相關聯,而同一個行為實例不能用於多個物件。此外,行為附加屬性沒有設定器,只能內聯添加。
要克服這些限制:
x:Shared
屬性設為 False
,以便每次引用資源時都建立新副本。 這是一個使用此方法的範例:
<code class="language-xml"><Grid> <Grid.Resources> <String x:Key="stringResource1">stringResource1</String> <Triggers x:Key="debugTriggers" x:Shared="False"> <EventTrigger EventName="MouseLeftButtonDown"> <DebugAction Message="DataContext: {0}" MessageParameter="{Binding}" /> <DebugAction Message="ElementName: {0}" MessageParameter="{Binding Text, ElementName=textBlock2}" /> <DebugAction Message="Mentor: {0}" MessageParameter="{Binding Text, RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}}" /> </EventTrigger> </Triggers> <Setter Property="local:SupplementaryInteraction.Triggers" Value="{StaticResource debugTriggers}" /> </Grid.Resources> <StackPanel DataContext="{StaticResource stringResource1}"> <TextBlock Name="textBlock1" Style="{StaticResource debugBehavior}" Text="textBlock1" /> <TextBlock Name="textBlock2" Style="{StaticResource debugBehavior}" Text="textBlock2" /> <TextBlock Name="textBlock3" Style="{StaticResource debugBehavior}" Text="textBlock3" /> </StackPanel> </Grid></code>
這種方法可讓您透過樣式設定器將行為和觸發器應用於多個對象,從而方便在應用程式中重複使用常見的行為功能。
以上是如何在 XAML 中使用樣式設定器將混合行為套用到多個物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!