Setter Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menerapkan nilai ke properti dalam Gaya atau VisualState.
public ref class Setter sealed : SetterBase
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.Activatable(Microsoft.UI.Xaml.ISetterFactory, 65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 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.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.Activatable(typeof(Microsoft.UI.Xaml.ISetterFactory), 65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Setter : SetterBase
Public NotInheritable Class Setter
Inherits SetterBase
<Setter .../>
- Warisan
- Atribut
Contoh
Contoh ini memperlihatkan cara menggunakan Setter
pernyataan 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 Setter
pernyataan 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 Setter
pernyataan untuk mengatur nilai properti dalam Gaya atau VisualState.
Properti Setter.Target dapat digunakan dalam Gaya atau VisualState, tetapi dengan cara yang berbeda. Ketika digunakan dalam Style
, properti yang perlu dimodifikasi dapat ditentukan secara langsung. Ketika digunakan dalam VisualState
, Target
properti harus diberikan TargetPropertyPath (sintaks bertitik 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 Setter
instans menggunakan kode, Anda tidak dapat mengubah nilai properti Setter
instans apa pun jika nilai properti IsSealed pada Gaya induk adalah true
. Ini juga dilaporkan oleh properti IsSealed pada individu Setter
. Sistem mengatur properti ini ke true
ketika runtime menerapkan gaya ke elemen UI dan menampilkannya di UI. Mencoba mengubah yang disegel Setter
melemparkan 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 mendukungBinding
penggunaan untuk Setter.Value (Binding
tidak akan mengevaluasi danSetter
tidak berpengaruh, Anda tidak akan mendapatkan kesalahan, tetapi Anda juga tidak akan mendapatkan hasil yang diinginkan). Saat Anda mengonversi gaya XAML dari WPF atau Microsoft Silverlight XAML, ganti penggunaan ekspresi apa punBinding
dengan string atau objek yang mengatur nilai, atau refaktor nilai sebagai nilai ekstensi markup {StaticResource} bersama daripadaBinding
nilai yang diperoleh.
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 |
Selalu kembali |
DispatcherQueue |
|
IsSealed |
Mendapatkan nilai yang menunjukkan apakah objek ini dalam status 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk