ImageBrush 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이미지로 영역을 그립니다. 이미지 원본은 일반적으로 JPEG(공동 사진 전문가 그룹)와 같은 파일 형식에서 가져옵니다.
public ref class ImageBrush sealed : TileBrush
/// [Windows.Foundation.Metadata.Activatable(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)]
class ImageBrush final : TileBrush
/// [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.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class ImageBrush final : TileBrush
[Windows.Foundation.Metadata.Activatable(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)]
public sealed class ImageBrush : TileBrush
[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.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class ImageBrush : TileBrush
Public NotInheritable Class ImageBrush
Inherits TileBrush
<ImageBrush .../>
- 상속
- 특성
Windows 요구 사항
디바이스 패밀리 |
Windows 10 (10.0.10240.0에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)
|
예제
이 XAML 예제에서는 TextBlock의 전경 속성을 ImageBrush 로 설정하는 방법을 보여 하며, 해당 이미지는 TextBlock으로 렌더링된 텍스트의 채우기로 사용됩니다.
<!-- TextBlock with an image brush applied to the text. -->
<TextBlock FontFamily="Verdana" FontSize="72"
FontStyle="Italic" FontWeight="Bold">
SHRUBBERY
<TextBlock.Foreground>
<ImageBrush ImageSource="forest.jpeg"/>
</TextBlock.Foreground>
</TextBlock>
설명
ImageBrush는 필요에 따라 확장 및 정렬할 수 있는 이미지로 콘텐츠를 정의하는 브러시 유형입니다. ImageBrush의 용도에는 텍스트에 대한 장식 효과 또는 컨트롤 또는 레이아웃 컨테이너의 이미지 배경이 포함됩니다.
두 가지 기본 시나리오에서 Image 컨트롤 대신 ImageBrush를 사용하는 것이 유용합니다.
- 타원 또는 테두리와 같은 직사각형이 아닌 영역을 이미지로 그리려고 합니다.
- 단일 ImageBrush를 사용하여 여러 이미지 컨트롤을 사용하는 것보다 더 효율적인 동일한 이미지로 여러 영역 또는 UIElements를 그리려고 합니다.
코드를 사용하여 ImageBrush를 정의하는 경우 기본 생성자를 사용한 다음 ImageBrush.ImageSource를 설정합니다. 이를 위해서는 코드에 BitmapImage (URI(Uniform Resource Identifier)가 아님)가 필요합니다. 원본이 스트림이면 SetSourceAsync 메서드를 사용하여 값을 초기화합니다. 원본이 ms-appx 또는 ms-resource 체계를 사용하는 앱의 콘텐츠를 포함하는 URI(Uniform Resource Identifier) 인 경우 URI(Uniform Resource Identifier)를 사용하는 BitmapImage 생성자를 사용합니다. 또한 이미지 소스를 검색하거나 디코딩하는 데 타이밍 문제가 있는 경우 ImageOpened 이벤트 처리를 고려할 수 있으며, 이미지 소스를 사용할 수 있을 때까지 표시할 대체 콘텐츠가 필요할 수 있습니다. 예제 코드 는 XAML 이미지 샘플을 참조하세요.
참고
현재 크기 조정 및 문화권 한정자를 사용하여 정규화되지 않은 리소스에 액세스하기 위해 자동 처리를 사용하거나, Culture 및 scale에 대한 한정 자와 함께 ResourceManager 및 ResourceMap 을 사용하여 리소스를 직접 가져올 수 있습니다. 자세한 내용은 리소스 관리 시스템을 참조하세요.
Stretch 속성은 브러시로 사용할 때 이미지를 적용하는 방법에 중요합니다. 채우기 동작을 사용하여 특정 Brush 속성에 적용된 대로 늘어나면 일부 이미지가 좋아 보이는 반면, 다른 이미지는 확장 또는 배율을 잘 조정하지 않으며 None 또는 Uniform for Stretch 값이 필요할 수 있습니다. Stretch에 대해 다른 값을 실험하여 UI에 적용할 때 가장 잘 보이는 동작을 확인합니다.
이미지 원본 및 크기 조정
Windows 8 크기를 조정할 때 앱이 멋지게 보이도록 몇 가지 권장 크기로 이미지 원본을 만들어야 합니다. ImageBrush에 대해 ImageSource 를 지정할 때 현재 크기 조정에 대한 올바른 리소스를 자동으로 참조하는 명명 규칙을 사용할 수 있습니다. 명명 규칙의 특성 및 자세한 내용은 빠른 시작: 파일 또는 이미지 리소스 사용을 참조하세요.
크기 조정을 위해 디자인하는 방법에 대한 자세한 내용은 레이아웃 및 크기 조정에 대한 UX 지침을 참조하세요.
이전 버전에 대한 참고 사항
Windows 8
Windows 8 ImageBrush가 컨트롤에 적용되는 XAML 스타일 또는 템플릿의 일부인 경우 XAML 특성 URI 값의 ImageSource 확인에 문제가 있었습니다. 컨트롤 사용은 일반적으로 앱에서 제공되는 스타일 또는 템플릿에 적절한 기본 URI가 아닌 구성 요소별 기본 URI를 사용하는 경우가 있습니다. 이 문제는 Windows 8.1 시작해서 해결되었습니다. 기본 URI가 필요한 scope 따라 앱 리소스 또는 구성 요소 리소스에 대해 기본 URI가 올바르게 결정됩니다. Windows 8 위해 컴파일된 앱은 XAML URI가 resolve 앱이 이미지를 표시하는 "잘못된" 위치에 이미지 원본 파일을 배치하여 이 동작에 대한 해결 방법을 사용했을 수 있습니다. XAML을 Windows 8 Windows 8.1 마이그레이션하는 경우 XAML에서 스타일 또는 템플릿의 ImageBrush 사용량을 테스트하고 앱의 이미지 해상도가 Windows 8.1 작동하는지 확인해야 합니다. 문제가 있는 경우 이미지 원본 파일이 새 동작에 대한 올바른 리소스 scope 있도록 패키지 내에서 이동해야 합니다.
Windows 8용으로 컴파일되었지만 Windows 8.1에서 실행하는 앱은 Windows 8 동작을 계속 사용합니다.
생성자
ImageBrush() |
ImageBrush 클래스의 새 instance 초기화합니다. |
속성
AlignmentX |
TileBrush 기본 타일에서 콘텐츠의 가로 맞춤을 가져오거나 설정합니다. (다음에서 상속됨 TileBrush) |
AlignmentY |
TileBrush 기본 타일에서 콘텐츠의 세로 맞춤을 가져오거나 설정합니다. (다음에서 상속됨 TileBrush) |
Dispatcher |
이 개체가 연결된 CoreDispatcher 를 가져옵니다. CoreDispatcher는 코드가 비 UI 스레드에서 시작된 경우에도 UI 스레드에서 DependencyObject에 액세스할 수 있는 기능을 나타냅니다. (다음에서 상속됨 DependencyObject) |
ImageSource |
이 ImageBrush에서 표시하는 이미지 원본을 가져오거나 설정합니다. ImageSource 하위 클래스 instance 사용하여 이 설정을 코드에서 XAML에서 URI를 사용하여 이미지 원본 파일로 설정합니다. |
ImageSourceProperty |
ImageSource 종속성 속성을 식별합니다. |
Opacity |
브러시의 불투명도를 가져오거나 설정합니다. (다음에서 상속됨 Brush) |
RelativeTransform |
상대 좌표를 사용하여 브러시에 적용되는 변형을 가져오거나 설정합니다. (다음에서 상속됨 Brush) |
Stretch |
이 TileBrush 의 콘텐츠가 타일에 맞게 늘이는 방식을 지정하는 값을 가져오거나 설정합니다. (다음에서 상속됨 TileBrush) |
Transform |
브러시에 적용되는 변형을 가져오거나 설정합니다. (다음에서 상속됨 Brush) |
메서드
이벤트
ImageFailed |
이미지 검색 또는 형식과 관련된 오류가 있을 때 발생합니다. |
ImageOpened |
이미지 원본을 다운로드하고 오류 없이 디코딩할 때 발생합니다. 이 이벤트를 사용하여 렌더링하기 전에 이미지의 크기를 확인할 수 있습니다. |