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 개체를 정의하는 또 다른 방법은 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.Foreground, Shape.Fill, Control.BorderBrush, Panel.Background, TextBlock.Foreground가 있습니다.

이러한 속성의 경우 null 값이 허용되는 경우가 많으며 아무 것도 렌더링되지 않습니다. 요소가 다른 요소와 동일한 좌표 공간에 표시되는 경우 Background와 같은 속성의 null 값으로 인해 해당 요소가 적중 테스트를 위해 등록되지 않고 입력 이벤트를 원본으로 사용할 위치를 결정합니다. UI 좌표 공간의 해당 지점에서 발생하는 모든 포인터 이벤트, 제스처 등은 해당 지점의 렌더링에 영향을 주는 Brush 속성에 대해 null 이외의 값이 있는 경우에만 검색할 수 있습니다.

투명한 값을 사용하는 SolidColorBrush를 만들 수 있으며, UI에 변경 내용을 시각적으로 적용하지는 않지만(투명) 적중 테스트를 위해 해당 지점을 검색할 수 있습니다. 따라서 Null 값이 있는 Brush 속성과 다릅니다. 투명 브러시는 Rectangle, Border 또는 panel과 같은 요소로 적중 테스트를 가로채려는 UI 요소를 통해 오버레이 영역을 만드는 등의 기술에 유용할 수 있습니다. 아래의 요소가 자체 적중 테스트를 수행할 수 없지만 입력 이벤트를 검색하려는 경우 이 작업을 수행할 수 있습니다. 적중 테스트에 대한 자세한 내용은 마우스 상호 작용의 "적중 테스트" 섹션을 참조하세요.

브러시를 사용하는 속성은 전환 또는 장식 애니메이션의 일부로 애니메이션 효과를 받을 수 있습니다. 일반적으로 전체 SolidColorBrush 개체에 애니메이션 효과를 주지 않고 개별 개체 애니메이션을 사용해야 하며 효율적이거나 미적이 아닙니다. 대신 속성 대상 지정을 사용하여 Color 값에 애니메이션 효과를 주는 전용 애니메이션 형식 중 하나를 사용하여 Color 값에만 애니메이션 효과를 적용합니다. 일반적으로 Storyboard.TargetProperty 값의 일부가 되는 것이 .(SolidColorBrush.Color) 포함됩니다. 속성 대상 지정 및 SolidColorBrush 또는 기타 Brush 값을 사용하는 속성에 애니메이션 효과를 주는 방법에 대한 자세한 내용은 Storyboarded 애니메이션을 참조하세요.

SolidColorBrush는 LinearGradientBrushImageBrush와 같은 다른 파생된 Brush 형식과 마찬가지로 공유 가능한 개체입니다. 공유 가능하기 때문에 SolidColorBrush는 XAML에서 XAML ResourceDictionary의 리소스로 정의되기도 합니다. XAML에서 공유 가능한 리소스를 사용할 경우의 이점은 값을 한 번만 만들고 여러 속성에 적용한다는 것입니다.

UIElement.Opacity 값을 적용하면 개체에 적용된 SolidColorBrush 속성의 색 모양이 변경될 수 있습니다. UIElement.Opacity 값은 겹치는 개체의 레이아웃에 따라 누적될 수 있습니다. 순 불투명도 값이 1인 경우에만 색이 예상대로 표시됩니다. 명백한 색에도 비슷한 영향을 줄 수 있는 Brush.Opacity 속성도 있습니다. Brush.Opacity 는 페이드 인 또는 페이드 아웃 효과를 위해 의도적으로 애니메이션 효과를 적용하지 않는 한 일반적으로 기본값인 1로 유지됩니다.

XAML 리소스로 브러시

XAML(SolidColorBrush, LinearGradientBrush, ImageBrush)에서 선언할 수 있는 각 Brush 형식은 리소스로 정의되어 앱 전체에서 해당 브러시를 리소스로 다시 사용할 수 있도록 하기 위한 것입니다. 브러시 형식에 표시된 XAML 구문은 브러시 를 리소스로 정의하는 데 적합합니다. 브러시를 리소스로 선언하는 경우 나중에 다른 UI 정의에서 해당 리소스를 참조하는 데 사용할 x:Key 특성 도 필요합니다. XAML 리소스 및 x:Key 특성을 사용하는 방법에 대한 자세한 내용은 ResourceDictionary 및 XAML 리소스 참조를 참조하세요.

브러시를 리소스로 선언하면 UI를 생성하는 데 필요한 런타임 개체의 수가 줄어듭니다. 이제 브러시는 개체 그래프의 여러 부분에 대한 값을 제공하는 공통 리소스로 공유됩니다.

Windows 런타임 XAML 컨트롤에 대한 기존 컨트롤 템플릿 정의를 살펴보면 템플릿에서 브러시 리소스를 광범위하게 사용하는 것을 볼 수 있습니다. 이러한 리소스의 대부분은 시스템 리소스이며 { StaticResource} 태그 확장 이 아닌 리소스 참조에 {ThemeResource} 태그 확장을 사용합니다. 사용자 고유의 컨트롤 템플릿 XAML에서 시스템 리소스 브러시를 사용하는 방법에 대한 자세한 내용은 XAML 테마 리소스를 참조하세요.

생성자

SolidColorBrush()

색이 없는 SolidColorBrush 클래스의 새 instance 초기화합니다.

SolidColorBrush(Color)

지정한 Color를 사용하여 SolidColorBrush 클래스의 새 instance 초기화합니다.

속성

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 instance 특정 DependencyProperty에 대한 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다.

(다음에서 상속됨 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject에 대한 종속성 속성의 로컬 값을 설정합니다.

(다음에서 상속됨 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다.

(다음에서 상속됨 DependencyObject)

적용 대상

추가 정보