SolidColorBrush クラス

定義

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

public ref class SolidColorBrush sealed : Brush
/// [Microsoft.UI.Xaml.Markup.ContentProperty(Name="Color")]
/// [Windows.Foundation.Metadata.Activatable(Microsoft.UI.Xaml.Media.ISolidColorBrushFactory, 65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.Activatable(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 SolidColorBrush final : Brush
[Microsoft.UI.Xaml.Markup.ContentProperty(Name="Color")]
[Windows.Foundation.Metadata.Activatable(typeof(Microsoft.UI.Xaml.Media.ISolidColorBrushFactory), 65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.Activatable(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 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
属性

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>
<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>
  • 赤、緑、青の量を指定して 32 ビット カラー パレット内に色を作成し、単一の単色に結合します。
<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>
<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>
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 で宣言できる 各 Brush 型 (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

常に Windows アプリ SDK アプリで を返しますnull。 代わりに DispatcherQueue を使用してください。

(継承元 DependencyObject)
DispatcherQueue

このオブジェクトが DispatcherQueue 関連付けられている を取得します。 は DispatcherQueue 、コードが 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)

適用対象

こちらもご覧ください