스타일 설정기를 사용하여 애플리케이션의 모든 버튼에 혼합 동작을 설정하려고 합니다. 그러나 "'동작' 속성에 액세스할 수 있는 설정자가 없습니다."라는 오류가 발생합니다.
여기서 가장 큰 문제는 동작이 특정 개체와 연관되어 있으며 동일한 동작 인스턴스를 여러 개체에 사용할 수 없다는 것입니다. 또한 동작 연결 속성에는 설정자가 없으며 인라인으로만 추가할 수 있습니다.
이러한 한계를 극복하려면:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!