SolidColorBrush クラス

定義

純色で領域を塗りつぶします。 純色は 、Color 値によって定義されます。

public ref class SolidColorBrush sealed : Brush
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Media.ISolidColorBrushFactory, 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)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
class SolidColorBrush final : Brush
/// [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.UI.Xaml.Markup.ContentProperty(Name="Color")]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Media.ISolidColorBrushFactory, 65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class SolidColorBrush final : Brush
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Media.ISolidColorBrushFactory), 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)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
public sealed class SolidColorBrush : Brush
[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.UI.Xaml.Markup.ContentProperty(Name="Color")]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Media.ISolidColorBrushFactory), 65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class SolidColorBrush : Brush
Public NotInheritable Class SolidColorBrush
Inherits Brush
<SolidColorBrush .../>
-or-
<SolidColorBrush>colorString</SolidColorBrush>
- or -
<SolidColorBrush Color="predefinedColorName"/>
- or -
<SolidColorBrush Color="#rgb"/>
- or -
<SolidColorBrush Color="#argb"/>
- or -
<SolidColorBrush Color="#rrggbb"/>
- or -
<SolidColorBrush Color="#aarrggbb"/>
- or -
<SolidColorBrush Color="sc#scR,scG,scB"/>
- or -
<SolidColorBrush Color="sc#scA,scR,scG,scB"/>
継承
Object Platform::Object IInspectable DependencyObject Brush SolidColorBrush
属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

SolidColorBrush を使用する最も一般的な方法は、RESOURCEDictionary で XAML 要素をリソースとして定義し、そのリソースを後で {StaticResource} マークアップ拡張機能または {ThemeResource} マークアップ拡張機能を使用して UI 定義、スタイル、またはテンプレートの他の部分から参照することです。

<ResourceDictionary>
...
    <SolidColorBrush x:Key="BlockBackgroundBrush" Color="#FF557EB9"/>
...
</ResourceDictionary>
<Border Background="{StaticResource BlockBackgroundBrush}" 
    Width="80" Height="80"/>

SolidColorBrush をリソースとしてではなくインライン UI 値として定義するには、いくつかの異なる方法があります。

  • 定義済みの色を名前で選択し、解析時にこの色によって SolidColorBrush が作成される XAML の "ショートカット" に依存します。 たとえば、次のように四角形塗りつぶしを "赤" に設定できます。
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <!-- This rectangle's fill is painted with a red SolidColorBrush,
       described using a named color. -->
  <Rectangle Width="100" Height="100" Fill="Red" />
</Canvas>
  • 16 進数の RGB カラー コードを使用して、選択した量の赤、緑、青で構成される 24 ビットの色範囲からユーザー設定の色を選択します。
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <!-- This rectangle's fill is painted with a Red SolidColorBrush,
       described using an RGB-style hex color code. -->
  <Rectangle Width="100" Height="100" Fill="#FF0000" />
</Canvas>
  • また、目的のプロパティを 16 進形式の ARGB カラー コードに設定することで、不透明度を指定してカスタムカラーを指定することもできます。
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <!-- This rectangle's fill is painted with a fully opaque red SolidColorBrush,
       described using an ARGB style hex code. -->
  <Rectangle Width="100" Height="100" Fill="#FFFF0000" />
</Canvas>

純色ブラシは、 Colors 構造体から定義済みの色を使用して SolidColorBrush オブジェクトをインスタンス化することで、分離コードで作成できます。

SolidColorBrush greenBrush = new SolidColorBrush(Colors.Green);
Windows::UI::Xaml::Media::SolidColorBrush greenBrush{ Windows::UI::Colors::Green() };
auto greenBrush = ref new SolidColorBrush(Colors::Green);

新しい SolidColorBrush オブジェクトを定義するもう 1 つの方法は、 FromArgb 静的ユーティリティ メソッドを使用することです。 これは、目的の色に名前付き の値がない場合に便利です。

SolidColorBrush myBrush = new SolidColorBrush(Color.FromArgb(255, 20, 20, 90));
Windows::UI::Xaml::Media::SolidColorBrush myBrush{ Windows::UI::ColorHelper::FromArgb(255, 90, 200, 90) };
auto myBrush = ref new SolidColorBrush(ColorHelper::FromArgb(255, 90, 200, 90));

注釈

SolidColorBrush は、 Brush を使用してアプリ UI のオブジェクトのビジュアル領域の一部またはすべてを塗りつぶす可能性のある多くの UI プロパティに使用される、最も一般的な種類の Brush です。 Brush 値を使用する最も一般的に使用されるプロパティの例としては、Control.Background、Control.ForegroundShape.FillControl.BorderBrush、Panel.BackgroundTextBlock.Foreground などがあります。

これらのプロパティでは、多くの場合、 null 値が許容され、そこに何もレンダリングされないという結果になります。 要素が他の要素と同じ座標空間に表示される場合、Background などのプロパティの null 値により、その要素はヒット テストのために登録されず、入力イベントのソースを決定します。 UI 座標空間のそのポイントで発生するすべてのポインター イベント、ジェスチャは、そのポイントのレンダリングに影響を与える Brush プロパティに null 以外の値がある場合にのみ検出できます。

Transparent 値を使用する SolidColorBrush を作成できます。これにより UI に変更が視覚的に適用されることはありませんが (透明です)、そのポイントはヒット テストの目的で検出できます。 したがって、これは null 値を持つ Brush プロパティとは異なります。 Transparent ブラシは、四角形罫線、パネルなどの要素でヒット テストをインターセプトする UI 要素にオーバーレイ領域を作成するなどの手法に役立ちます。 下の要素が独自のヒット テストを実行できないが、入力イベントを検出したい場合は、これを行うことができます。 ヒット テストの詳細については、「 マウス操作」の「ヒット テスト」セクションを参照してください。

ブラシを使用するプロパティは、画面切り替えや装飾アニメーションの一部としてアニメーション化できます。 通常、SolidColorBrush オブジェクト全体をアニメーション化する必要はありません。個別の オブジェクト アニメーションを使用する必要があり、効率的でも美的でもありません。 代わりに、Color 値をアニメーション化できる専用のアニメーションの種類のいずれかを使用して、 プロパティ のターゲット設定を使用して Color 値のみをアニメーション化します。 通常、これは Storyboard.TargetProperty 値の一部である必要.(SolidColorBrush.Color)があります。 プロパティのターゲット設定の詳細と、SolidColorBrush またはその他の Brush 値を使用するプロパティをアニメーション化する方法については、「 ストーリーボード化されたアニメーション」を参照してください。

SolidColorBrush は共有可能なオブジェクトであり、LinearGradientBrush や ImageBrush などの他の派生型の Brush と同様です。 共有可能であるため、SolidColorBrush は XAML ResourceDictionary のリソースとして XAML で定義される場合があります。 XAML から共有可能なリソースを使用する利点は、値を 1 回だけ作成し、それを複数のプロパティに適用することです。

UIElement.Opacity 値を適用すると、オブジェクトに適用される SolidColorBrush プロパティの色の外観を変更できます。 UIElement.Opacity 値は、重複するオブジェクトのレイアウトに応じて累積できます。 色は、ネット 不透明度 の値が 1 の場合にのみ期待どおりに表示されます。 同様に、見かけの色に影響を与える 可能性がある Brush.Opacity プロパティもあります。 Brush.Opacity は通常、フェードインまたはフェードアウト効果のために意図的にアニメーション化されていない限り、既定値の 1 のままにします。

XAML リソースとしてのブラシ

XAML で宣言できる 各ブラシ の種類 (SolidColorBrush、 LinearGradientBrushImageBrush) は、アプリ全体でそのブラシをリソースとして再利用できるように、リソースとして定義することを目的としています。 Brush 型に表示される XAML 構文は、 ブラシ をリソースとして定義する場合に適しています。 ブラシをリソースとして宣言する場合は、後で他の UI 定義からそのリソースを参照するために使用する x:Key 属性 も必要です。 XAML リソースと x:Key 属性の使用方法の詳細については、「 ResourceDictionary および XAML リソース参照」を参照してください

ブラシをリソースとして宣言する利点は、UI を構築するために必要なランタイム オブジェクトの数を減らすことです。ブラシは、オブジェクト グラフの複数の部分に値を提供する共通リソースとして共有されるようになりました。

Windows ランタイム XAML コントロールの既存のコントロール テンプレート定義を見ると、テンプレートでブラシ リソースが広範囲に使用されていることがわかります。 これらのリソースの多くはシステム リソースであり、 {StaticResource} マークアップ拡張機能 ではなく、リソース参照に {ThemeResource} マークアップ拡張機能を使用します。 独自のコントロール テンプレート XAML でシステム リソース ブラシを使用する方法の詳細については、「 XAML テーマ リソース」を参照してください。

コンストラクター

SolidColorBrush()

色なしで SolidColorBrush クラスの新しいインスタンスを初期化します。

SolidColorBrush(Color)

指定した Color を使用して SolidColorBrush クラスの新しいインスタンスを初期化 します

プロパティ

Color

この SolidColorBrush の色を取得または設定します。

ColorProperty

Color 依存関係プロパティを識別します。

Dispatcher

このオブジェクトが関連付けられている CoreDispatcher を取得します。 CoreDispatcher は、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の DependencyObject にアクセスできる機能を表します。

(継承元 DependencyObject)
Opacity

ブラシの不透明度を取得または設定 します

(継承元 Brush)
RelativeTransform

相対座標を使用して、ブラシに適用される変換を取得または設定します。

(継承元 Brush)
Transform

ブラシに適用される変換を取得または設定します。

(継承元 Brush)

メソッド

ClearValue(DependencyProperty)

依存関係プロパティのローカル値をクリアします。

(継承元 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

依存関係プロパティに対して確立された基本値を返します。これは、アニメーションがアクティブでない場合に適用されます。

(継承元 DependencyObject)
GetValue(DependencyProperty)

DependencyObject から依存関係プロパティの現在の有効な値を返します。

(継承元 DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

アニメーション化できるプロパティを定義します。

(継承元 Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

派生クラスでオーバーライドされると、アニメーション化できるプロパティを定義します。

(継承元 Brush)
ReadLocalValue(DependencyProperty)

ローカル値が設定されている場合は、依存関係プロパティのローカル値を返します。

(継承元 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。

(継承元 DependencyObject)

適用対象

こちらもご覧ください