Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menggunakan Gelagat Campuran pada Berbilang Objek Menggunakan Penetap Gaya dalam XAML?

Bagaimana untuk Menggunakan Gelagat Campuran pada Berbilang Objek Menggunakan Penetap Gaya dalam XAML?

Patricia Arquette
Patricia Arquetteasal
2025-01-10 10:35:41418semak imbas

How to Apply Blend Behaviors to Multiple Objects Using Style Setters in XAML?

Tambah gelagat pengadunan dalam penetap gaya

Soalan:

Anda mahu menggunakan penetap gaya untuk menetapkan gelagat pengadunan kepada semua butang dalam aplikasi anda. Walau bagaimanapun, anda menghadapi ralat "Kelakuan' Harta tidak mempunyai penetap boleh diakses".

Penyelesaian:

Cabaran utama di sini ialah tingkah laku dikaitkan dengan objek tertentu dan tika gelagat yang sama tidak boleh digunakan untuk berbilang objek. Selain itu, sifat yang dilampirkan tingkah laku tidak mempunyai penetap dan hanya boleh ditambah sebaris.

Untuk mengatasi had ini:

  • Tentukan tingkah laku anda dan cetuskan kelas pengumpulan.
  • Buat sifat dilampirkan tersuai untuk memanipulasi gelagat utama dan mencetuskan sifat.
  • Tetapkan atribut x:Shared kepada False supaya salinan baharu dibuat setiap kali sumber dirujuk.
  • Manfaatkan sifat aditif gelagat dan pencetus dengan menambahkan gelagat dan ciri pencetus dan bukannya menggantikannya.

Berikut ialah contoh menggunakan kaedah ini:

<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>

Pendekatan ini membolehkan anda menggunakan gelagat dan pencetus pada berbilang objek melalui penetap gaya, menjadikannya mudah untuk menggunakan semula fungsi gelagat biasa merentas aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Gelagat Campuran pada Berbilang Objek Menggunakan Penetap Gaya dalam XAML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn