다음을 통해 공유


SolidColorBrush 클래스

정의

단색으로 영역을 그립니다. 단색은 값으로 정의됩니다.

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>
  • desired 속성을 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>

SolidColorBrush 개체를 Colors 구조체에서 미리 정의된 색으로 인스턴스화하여 코드 숨김에서 단 브러시를 만들 수 있습니다.

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 값에만 애니메이션 효과를 적용합니다. 이는 일반적으로 .(SolidColorBrush.Color)Storyboard.TargetProperty 값의 일부여야 합니다. 속성 대상 지정 및 SolidColorBrush 또는 기타 브러시 값을 사용하는 속성에 애니메이션 효과를 주는 방법에 대한 자세한 내용은 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 클래스의 새 인스턴스를 초기화합니다.

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)

적용 대상

추가 정보