Bagikan melalui


Color Struktur

Definisi

Menjelaskan warna dalam hal saluran alfa, merah, hijau, dan biru.

public value class Color
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct Color
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct Color
var color = {
a : /* Your value */,
r : /* Your value */,
g : /* Your value */,
b : /* Your value */
}
Public Structure Color
<Color ...>predefinedColor</Color>
- or -
<Color ...>#rgb</Color>
- or -
<Color ...>#argb</Color>
- or -
<Color ...>#rrggbb</Color>
- or -
<Color ...>#aarrggbb</Color>
- or -
<Color ...>sc#scR,scG,scB</Color>
- or -
<Color ...>sc#scA,scR,scG,scB</Color>
- or -
<object property="predefinedColor"/>
- or -
<object property="#rgb"/>
- or -
<object property="#argb"/>
- or -
<object property="#rrggbb"/>
- or -
<object property="#aarrggbb"/>
- or -
<object property="sc#scR,scG,scB"/>
- or -
<object property="sc#scA,scR,scG,scB"/>
Warisan
Color
Atribut

Persyaratan Windows

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

Contoh

Berikut adalah sintaks untuk mendefinisikan nilai Warna sebagai sumber daya dalam ResourceDictionary XAML. Anda biasanya hanya memerlukan ini jika Anda mendefinisikan warna yang belum menjadi salah satu dari 250+ warna yang disediakan sebagai nilai di kelas Warna , dan Anda ingin menggunakan sistem sumber daya XAML sebagai penegakan bahwa Anda menggunakan warna yang sama di beberapa area UI aplikasi Anda. Perhatikan atribut x:Key, diperlukan saat Anda menentukan sumber daya XAML.

<Application.Resources>
  ...
  <Color x:Key="SlightlyOffBlue">#FF0000E8</Color>
</Application.Resources>
<!-- example reference to the resource, make sure is a property that is really Color not Brush-->
      <ColorAnimation Storyboard.TargetName="mySolidColorBrush"
        Storyboard.TargetProperty="Color" To="{StaticResource SlightlyOffBlue}" Duration="0:0:4"/>

Kode ini menunjukkan konverter dua arah untuk nilai SolidColorBrush dan Color. Ini dapat berguna untuk skenario pengikatan data, karena mengimplementasikan pola IValueConverter yang dapat digunakan properti Pengonversi pengikatan data, dan Anda kemudian dapat mengikat sumber SolidColorBrush ke target Warna dan sebaliknya. Untuk melihat kode ini dalam konteks, lihat sumber untuk sampel SwapChainPanel.

class BrushConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        return new SolidColorBrush((value is Color) ? (Color)value : Colors.Black);
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        return (value is SolidColorBrush) ? (value as SolidColorBrush).Color : Colors.Black;
    }
}

Keterangan

Warna adalah struktur Windows Runtime yang mewakili warna yang memiliki empat saluran: A (alpha), R (merah), G (hijau), B (biru). Masing-masing nilai disimpan sebagai jenis Byte dengan nilai 0-255.

Nilai warna digunakan dalam fitur dan skenario ini:

  • Warna untuk layar mulai dan UI umum (misalnya SecondaryTile.BackgroundColor dan UISettings.UIElementColor). Ini dapat digunakan dalam JavaScript.
  • Nilai warna untuk sistem tinta Windows 8. Secara khusus, InkDrawingAttributes.Color. Ini dapat digunakan dalam JavaScript.
  • Nilai warna untuk UI XAML dan aplikasi UWP menggunakan C++, C#, atau Visual Basic, terutama untuk kuas. API ini tidak dapat digunakan dalam JavaScript.
  • Menentukan nilai warna yang digunakan untuk antarmuka yang mewakili teks, di namespace layanan Windows.UI.Text . API ini tidak dapat digunakan dalam JavaScript.

Nilai warna dan definisi XAML

Aplikasi Warna yang paling sering adalah menentukan properti terkait warna dalam elemen UI sebagai bagian dari aplikasi UWP menggunakan C++, C#, atau Visual Basic dan definisi XAML UI-nya.

Berbagai nilai Warna yang telah ditentukan sebelumnya tersedia sebagai properti statis pada kelas Warna . Properti ini berguna untuk mengatur nilai Warna dalam kode yang cocok dengan formulir string atribut yang digunakan di XAML untuk mengatur Warna bernama. Misalnya, properti Colors.AliceBlue mengembalikan Warna yang sama dengan Warna dari penggunaan <SolidColorBrush Color="AliceBlue" />XAML . Anda juga dapat menggunakan nilai Warna untuk perbandingan kesetaraan dengan Warna.

Dalam sebagian besar skenario UI XAML, Warna tidak digunakan langsung sebagai nilai properti UIElement. Sebaliknya, Warna digunakan sebagai nilai komponen Brush ( baik SolidColorBrush atau LinearGradientBrush). Namun, jenis Brush memungkinkan singkatan XAML yang memungkinkan Anda mengatur nilai atribut jenis Brush menggunakan string warna bernama, atau string format yang dapat diurai ke dalam bentuk ARGB . Misalnya, Anda dapat mengatur nilai jenis BrushTextBlock.Foreground menggunakan sintaks seperti <TextBlock Foreground="Cyan" />. Sintaks ini secara implisit membuat SolidColorBrush baru dengan nilai Warna yang sama dengan Cyan yang mengisi nilai jenis BrushTextBlock.Foreground untuk elemen tersebut. Untuk informasi selengkapnya tentang menggunakan kuas dan warna di XAML, lihat Menggunakan kuas.

Jika Anda sering menggunakan kuas warna yang sama di XAML, Anda harus mendefinisikan SolidColorBrush sebagai sumber daya daripada menggunakan pembuatan implisit sebaris dari nilai baru, karena itu lebih efisien. Untuk informasi selengkapnya, lihat Mengoptimalkan markup XAML atau referensi sumber daya ResourceDictionary dan XAML Anda. Anda mungkin juga ingin menggunakan warna sistem, yang dapat diakses sebagai sumber daya gabungan untuk tema yang ditentukan sistem. Lihat Sumber daya tema XAML.

Ada juga beberapa properti XAML yang mengambil nilai Warna langsung. Ini sebagian besar mendukung animasi nilai Warna yang ada pada Kuas. Windows Runtime mendukung logika interpolasi sehingga Anda dapat menganimasikan dari satu Warna ke Warna lainnya dalam animasi Dari/Ke dan animasi akan menggunakan nilai Warna terinterpolasi saat animasi berjalan. Untuk informasi selengkapnya, lihat Animasi storyboarded.

Catatan tentang sintaks XAML

Jika Anda menggunakan token "#" untuk menentukan nilai warna dalam bentuk hex, nilai hex disimpan dalam struktur sebagai nilai antara 0 dan 255, bukan sebagai string hex asli. Jika Anda menggunakan token "sc#", nilainya juga disimpan sebagai nilai antara 0 dan 255, bukan nilai asli 0 hingga 1.

String untuk warna bernama ditafsirkan berdasarkan konstanta Warna terkait, dan nilai untuk A, R, G , dan B diatur dalam struktur sebagai nilai antara 0 dan 255 yang mewakili warna tersebut.

Penggunaan elemen objek XAML (dengan teks inisialisasi) berguna untuk mendeklarasikan Warna sebagai sumber daya dalam Kamus Sumber Daya XAML. Untuk informasi selengkapnya, lihat Referensi sumber daya ResourceDictionary dan XAML.

Tabel ini menjelaskan tempat penampung nilai warna yang diperlihatkan di bagian Sintaks XAML.

Nilai Catatan
predefinedColor Salah satu warna yang telah ditentukan sebelumnya oleh kelas Warna . Lihat anggota Colors untuk daftar. Ini adalah properti statis. Tentukan hanya nama warna, misalnya Transparent. Jangan sertakan kualifikasi kelas statis dalam string: misalnya, "Colors.Transparent" tidak mengurai di XAML.
<Grid Background="Blue"/>, <Color>Blue</Color>
Rgb Nilai heksadesimal tiga karakter. Karakter pertama menentukan nilai R warna, karakter kedua menentukan nilai G, dan karakter ketiga menentukan nilai B. Misalnya, 00F.
<Grid Background="#00F"/>, <Color>#00F</Color>
argb Nilai heksadesimal empat karakter. Karakter pertama menentukan nilai A warna, karakter kedua menentukan nilai R-nya, karakter ketiga menentukan nilai G, dan karakter keempat menentukan nilai B-nya. Misalnya, F00F.
<Grid Background="#F00F"/>, <Color>#F00F</Color>
rrggbb Nilai heksadesimal enam karakter. Dua karakter pertama menentukan nilai R warna, dua karakter berikutnya menentukan nilai G-nya, dan dua karakter terakhir menentukan nilai B-nya. Misalnya, 0000FF.
<Grid Background="#0000FF"/>, <Color>#0000FF</Color>
aarrggbb Nilai heksadesimal delapan karakter. Dua karakter pertama menentukan nilai A warna, dua berikutnya menentukan nilai R-nya, dua karakter berikutnya menentukan nilai G-nya, dan dua terakhir menentukan nilai B-nya. Misalnya, FF0000FF.
<Grid Background="#FF0000FF"/>, <Color>#FF0000FF</Color>
Sca Nilai ScA (alfa) warna sebagai nilai antara 0 dan 1.
<Grid Background="sc#1,0,0,1"/>, <Color>sc#1,0,0,1</Color>
Scr Nilai ScR (merah) warna sebagai nilai antara 0 dan 1.
Scg Nilai ScG (hijau) warna sebagai nilai antara 0 dan 1.
scB Nilai ScB (biru) warna sebagai nilai antara 0 dan 1.

Proyeksi dan anggota Warna

Jika Anda menggunakan bahasa Microsoft .NET (C# atau Microsoft Visual Basic) maka Color memiliki metode statis FromArgb yang bertindak sebagai generator nilai Warna. Selain itu, anggota data Color diekspos sebagai properti baca-tulis.

Jika Anda memprogram dengan C++, ekstensi komponen Visual C++ (C++/CX) atau WRL, maka hanya bidang anggota data yang ada sebagai anggota Warna, dan Anda tidak dapat menggunakan metode utilitas atau properti yang tercantum dalam tabel anggota. Kode C++ dapat menggunakan metode FromArgb yang setara pada kelas ColorHelper , dan metode Platform::Object .

Perilaku ToString untuk Warna

Untuk C# dan Microsoft Visual Basic, dukungan bahasa untuk struktur Warna menyediakan perilaku untuk ToString yang menserialisasikan nilai properti data ARGB ke dalam satu string. Representasi string nilai Warna mirip dengan sintaks string atribut XAML untuk menentukan nilai Warna dalam markup. Ini adalah sintaks yang paling umum digunakan oleh alat perancang untuk menentukan Warna (tidak bernama). String dalam bentuk #AARRGGBB, di mana setiap pasangan huruf mewakili salah satu saluran warna sebagai nilai antara 00 dan FF. Setiap pasangan huruf ditafsirkan seolah-olah itu adalah nilai heksa dan dengan demikian mewakili nilai antara 0 dan 255. String selalu dimulai dengan hash (#). Misalnya, bentuk string warna di mana A=255, R=0, G=128, B=255 "#FF0080FF". Untuk warna bernama, Anda mendapatkan string berseri dan bukan nama konstanta; misalnya memanggil ToStringColors.Blue memberikan "#FF0000FF".

Catatan

Ekstensi komponen Visual C++ (C++/CX) tidak menggunakan anggota nondata Color, dan tidak mengaktifkan bentuk string ini yang dikembalikan dari ToString(). Nilai ToString() yang dikembalikan dari ekstensi komponen Visual C++ (C++/CX) untuk Warna adalah perilaku Platform::Object::ToString yang tidak dimodifikasi, yang memberikan representasi jenis (dikotak oleh IReference) dan tidak menunjukkan nilainya.

Bidang

A

Mendapatkan atau mengatur nilai saluran alfa sRGB warna.

B

Mendapatkan atau mengatur nilai saluran biru sRGB warna.

G

Mendapatkan atau mengatur nilai saluran hijau sRGB warna.

R

Mendapatkan atau mengatur nilai saluran merah sRGB warna.

Berlaku untuk

Lihat juga