SolidColorBrush 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
단색으로 영역을 그립니다. 단색은 값으로 Color 정의됩니다.
UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.Media.SolidColorBrush(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).
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"/>
- 상속
- 특성
Windows 요구 사항
| 디바이스 패밀리 |
Windows 10 (10.0.10240.0에서 도입되었습니다.)
|
| API contract |
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)
|
예제
SolidColorBrush를 사용하는 가장 일반적인 방법은 XAML 요소를 리소스 ResourceDictionary로 정의한 다음 나중에 {StaticResource} 태그 확장 또는 {ThemeResource} 태그 확장을 사용하여 UI 정의, 스타일 또는 템플릿의 다른 부분에서 해당 리소스를 참조 하는 것입니다.
<ResourceDictionary>
...
<SolidColorBrush x:Key="BlockBackgroundBrush" Color="#FF557EB9"/>
...
</ResourceDictionary>
<Border Background="{StaticResource BlockBackgroundBrush}"
Width="80" Height="80"/>
SolidColorBrush를 리소스가 아닌 인라인 UI 값으로 정의하는 방법에는 여러 가지가 있습니다.
- 이름으로 미리 정의된 색을 선택하고 구문 분석할 때 이 색이 SolidColorBrush를 만드는 XAML "바로 가기"를 사용합니다. 예를 들어 다음과 같이 "Red"로 설정할 Fill Rectangle 수 있습니다.
<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 정적 유틸리티 메서드를 사용하는 것입니다. 이 값은 원하는 색의 명명된 Colors 값이 없는 경우에 유용합니다.
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는 앱 UI에서 개체의 Brush 시각적 영역의 일부 또는 전부를 채우는 데 사용할 수 있는 많은 UI 속성에 사용되는 Brush 가장 일반적인 형식입니다. 값을 사용하는 Brush 가장 일반적으로 사용되는 속성의 예는 다음과 Panel.BackgroundTextBlock.ForegroundControl.ForegroundControl.BorderBrushShape.Fill같습니다. Control.Background
이러한 속성의 경우 null 값이 허용되는 경우가 많으며, 그 결과 아무 것도 렌더링되지 않습니다. 요소가 다른 요소와 동일한 좌표 공간에 표시되는 경우 Background 와 같은 속성의 null 값으로 인해 해당 요소가 적중 횟수 테스트를 위해 등록되지 않고 입력 이벤트를 원본으로 사용할 위치를 결정합니다. UI 좌표 공간의 해당 지점에서 발생하는 포인터 이벤트, 제스처 등은 해당 지점의 렌더링에 영향을 주는 속성에 대해 Brush null 이외의 값이 있는 경우에만 검색할 수 있습니다.
값을 사용하는 Transparent SolidColorBrush를 만들 수 있으며, UI에 변경 내용을 시각적으로 적용하지는 않지만(투명) 적중 테스트를 위해 해당 지점을 검색할 수 있습니다. 따라서 null 값이 있는 Brush 속성과 다릅니다. 브러시는 Transparent UI 요소를 통해 오버레이 영역을 만드는 것과 같은 기술에 유용할 수 있으며, 이 경우 적중 시에 요소(예: RectangleBorder 패널)를 사용하여 적중 테스트를 가로챌 수 있습니다. 아래 요소가 자체 적중 테스트를 수행할 수 없지만 입력 이벤트를 검색하려는 경우 이 작업을 수행할 수 있습니다. 적중 횟수 테스트에 대한 자세한 내용은 마우스 상호 작용의 "적중 테스트" 섹션을 참조하세요.
브러시를 사용하는 속성은 전환 또는 장식 애니메이션의 일부로 애니메이션 효과를 적용할 수 있습니다. 일반적으로 전체 SolidColorBrush 개체에 애니메이션 효과를 주지 않고 불연속 개체 애니메이션을 사용해야 하며 효율적이고 미적 요소도 아닙니다. 대신 속성 대상을 사용하여 값에 애니메이션 Color 효과를 주는 전용 애니메이션 형식 중 하나를 사용하여 값에 애니메이션 효과를 Color 줄 수 있습니다. 이것은 일반적으로 Storyboard 일부가 되는 것을 .(SolidColorBrush.Color) 관련시킵니다. TargetProperty 값입니다. 속성 대상 지정 및 SolidColorBrush 또는 기타 Brush 값을 사용하는 속성에 애니메이션 효과를 주는 방법에 대한 자세한 내용은 Storyboarded 애니메이션을 참조하세요.
SolidColorBrush는 다른 파생 형식 Brush 과 마찬가지로 LinearGradientBrush 공유 가능한 개체입니다 ImageBrush. 공유 가능하므로 SolidColorBrush는 XAML에서 리소스 ResourceDictionary로 정의되기도 합니다. XAML에서 공유 가능한 리소스를 사용할 경우의 이점은 값을 한 번만 만들어 여러 속성에 적용한다는 것입니다.
값을 적용하면 UIElement.Opacity 개체에 적용된 SolidColorBrush 속성의 색 모양이 변경됩니다. 값은 UIElement.Opacity 겹치는 개체의 레이아웃에 따라 누적될 수 있습니다. 순 불투명도 값이 1인 경우에만 색이 예상대로 표시됩니다. 겉으로 보이는 색에도 Brush.Opacity 비슷한 영향을 줄 수 있는 속성도 있습니다. Brush.Opacity 는 페이드 인 또는 페이드 아웃 효과에 대해 의도적으로 애니메이션 효과를 적용하지 않는 한 일반적으로 기본값 1로 남아 있습니다.
XAML 리소스로 브러시
Brush 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) |
지정된 SolidColorBrush를 사용하여 Color 클래스의 새 인스턴스를 초기화합니다. |
속성
메서드
적용 대상
추가 정보
피드백
다음에 대한 사용자 의견 제출 및 보기