您希望使用样式设置器将混合行为设置为应用程序中的所有按钮。但是,您遇到错误“属性“Behaviors”没有可访问的设置器”。
这里的主要挑战是行为与特定对象相关联,并且同一个行为实例不能用于多个对象。此外,行为附加属性没有设置器,只能内联添加。
要克服这些限制:
x:Shared
属性设置为 False
,以便每次引用资源时都创建一个新副本。这是一个使用此方法的示例:
<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>
这种方法允许您通过样式设置器将行为和触发器应用于多个对象,从而方便在应用程序中重用常见的行为功能。
以上是如何在 XAML 中使用样式设置器将混合行为应用于多个对象?的详细内容。更多信息请关注PHP中文网其他相关文章!