スタイル セッターを使用して、アプリケーション内のすべてのボタンのブレンド動作を設定したいと考えています。ただし、「プロパティ '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 中国語 Web サイトの他の関連記事を参照してください。