Bagikan melalui


Setter Kelas

Definisi

Menerapkan nilai ke properti dalam Gaya atau VisualState.

public ref class Setter sealed : SetterBase
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.ISetterFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Setter final : SetterBase
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.ISetterFactory, 65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class Setter final : SetterBase
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.ISetterFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Setter : SetterBase
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.ISetterFactory), 65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class Setter : SetterBase
Public NotInheritable Class Setter
Inherits SetterBase
<Setter .../>
Warisan
Object Platform::Object IInspectable DependencyObject SetterBase Setter
Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Contoh

Contoh ini memperlihatkan cara menggunakan pernyataan Setter dalam gaya untuk elemen TextBlock .

<StackPanel>
    <StackPanel.Resources>
        <!-- Create a Style for a TextBlock to specify that the
             Foreground equals Navy, FontSize equals 14, and
             VerticalAlignment equals Bottom. -->
        <Style TargetType="TextBlock" x:Key="TextBlockStyle">
            <Setter Property="Foreground" Value="Navy"/>
            <Setter Property="FontSize" Value="14"/>
            <Setter Property="VerticalAlignment" Value="Bottom"/>
        </Style>
    </StackPanel.Resources>

    <!-- Apply the TextBlockStyle to 2 different TextBlocks. -->
    <TextBlock Style="{StaticResource TextBlockStyle}" Text="Hello"/>
    <TextBlock Style="{StaticResource TextBlockStyle}" Text="World"/>
</StackPanel>

Contoh ini memperlihatkan cara menggunakan beberapa pernyataan Setter di dalam properti VisualState.Setters untuk menerapkan perubahan nilai properti diskrit pada berbagai elemen (tanpa animasi) saat VisualState diterapkan.

<Page>
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup>
                <VisualState x:Name="NarrowState">
                    <VisualState.Setters>
                        <Setter Target="myPanel.Orientation" Value="Vertical"/>
                        <Setter Target="myPanel.Width" Value="380"/>
                        <Setter Target="myTextBlock.MaxLines" Value="3"/>
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>

        <StackPanel x:Name="myPanel" Orientation="Horizontal">
            <TextBlock x:Name="myTextBlock" MaxLines="5" Style="{ThemeResource BodyTextBlockStyle}"/>
        </StackPanel>
    </Grid>
</Page>

Anda juga dapat menerapkan setter ke nilai properti terlampir, dengan menentukan nama properti terlampir di AttachedPropertyProvider. Formulir PropertyName . Misalnya, untuk menggunakan Setter untuk properti terlampir Canvas.Left, gunakan XAML ini.

<Setter Property="Canvas.Left" Value="100"/>

Untuk memperbarui nilai properti terlampir menggunakan Target, tempatkan jalur properti terlampir di dalam tanda kurung. Contoh ini menunjukkan cara memperbarui RelativePanel.AlignRightWithPanel nilai pada elemen dengan nama 'TitleTextBlock'.

<RelativePanel>
    <TextBlock x:Name="TitleTextBlock" Text="Title"/>
</RelativePanel>

...

<Setter Target="TitleTextBlock.(RelativePanel.AlignRightWithPanel)" Value="True"/>

Keterangan

Gunakan pernyataan Setter untuk mengatur nilai properti dalam Gaya atau VisualState.

Properti Setter.Target dapat digunakan dalam Gaya atau VisualState, tetapi dengan cara yang berbeda. Saat digunakan dalam Gaya, properti yang perlu dimodifikasi dapat ditentukan secara langsung. Saat digunakan dalam VisualState, properti Target harus diberi TargetPropertyPath (sintaks putus-putus dengan elemen target dan properti yang ditentukan secara eksplisit).

Properti Setter.Property hanya dapat digunakan dalam Gaya dan bukan di VisualState. Mulai dari Windows 10, Anda dapat menggunakan Setter.Target di mana saja alih-alih Setter.Property.

Anda harus menentukan Nilai, dan Target atau Properti, pada Setter. Jika tidak, pengecualian dilemparkan (baik pengecualian penguraian atau kesalahan runtime, tergantung pada apakah Setter dibuat di XAML atau dimodifikasi dalam kode).

Jika Anda mengakses instans Setter menggunakan kode, Anda tidak dapat mengubah nilai properti apa pun dari instans Setter jika nilai properti IsSealed pada Gaya induk adalah benar. Ini juga dilaporkan oleh properti IsSealed pada Setter individu. Sistem mengatur properti ini ke true ketika runtime menerapkan gaya ke elemen UI dan menampilkannya di UI. Mencoba mengubah Setter yang disegel akan menimbulkan kesalahan runtime.

Catatan migrasi

  • Windows Presentation Foundation (WPF) dan Microsoft Silverlight mendukung kemampuan untuk menggunakan ekspresi Pengikatan untuk menyediakan Nilai untuk Setter dalam Gaya. Windows Runtime tidak mendukung penggunaan Pengikatan untuk Setter.Value ( Pengikatan tidak akan mengevaluasi dan Setter tidak berpengaruh, Anda tidak akan mendapatkan kesalahan, tetapi Anda juga tidak akan mendapatkan hasil yang diinginkan). Saat Anda mengonversi gaya XAML dari Windows Presentation Foundation (WPF) atau Microsoft Silverlight XAML, ganti penggunaan ekspresi Pengikatan apa pun dengan string atau objek yang mengatur nilai, atau refaktor nilai sebagai nilai ekstensi markup {StaticResource} bersama daripada nilai yang diperoleh Pengikatan.

Konstruktor

Setter()

Menginisialisasi instans baru kelas Setter tanpa Properti atau Nilai awal.

Setter(DependencyProperty, Object)

Menginisialisasi instans baru kelas Setter dengan informasi Properti dan Nilai awal.

Properti

Dispatcher

Mendapatkan CoreDispatcher yang dikaitkan dengan objek ini. CoreDispatcher mewakili fasilitas yang dapat mengakses DependencyObject pada utas UI meskipun kode dimulai oleh utas non-UI.

(Diperoleh dari DependencyObject)
IsSealed

Mendapatkan nilai yang menunjukkan apakah objek ini dalam keadaan tidak dapat diubah.

(Diperoleh dari SetterBase)
Property

Mendapatkan atau mengatur properti untuk menerapkan Nilai .

Target

Mendapatkan atau mengatur jalur properti pada elemen target untuk menerapkan Nilai .

Value

Mendapatkan atau mengatur nilai yang akan diterapkan ke properti yang ditentukan oleh Setter.

Metode

ClearValue(DependencyProperty)

Menghapus nilai lokal properti dependensi.

(Diperoleh dari DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Mengembalikan nilai dasar apa pun yang ditetapkan untuk properti dependensi, yang akan berlaku dalam kasus di mana animasi tidak aktif.

(Diperoleh dari DependencyObject)
GetValue(DependencyProperty)

Mengembalikan nilai efektif properti dependensi saat ini dari DependencyObject.

(Diperoleh dari DependencyObject)
ReadLocalValue(DependencyProperty)

Mengembalikan nilai lokal properti dependensi, jika nilai lokal ditetapkan.

(Diperoleh dari DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Mendaftarkan fungsi pemberitahuan untuk mendengarkan perubahan pada DependencyProperty tertentu pada instans DependencyObject ini.

(Diperoleh dari DependencyObject)
SetValue(DependencyProperty, Object)

Mengatur nilai lokal properti dependensi pada DependencyObject.

(Diperoleh dari DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Membatalkan pemberitahuan perubahan yang sebelumnya terdaftar dengan memanggil RegisterPropertyChangedCallback.

(Diperoleh dari DependencyObject)

Berlaku untuk

Lihat juga