Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir WinUI uygulamasında ekranınızda görünen her şey, bir fırça tarafından boyandığı için görünür. Fırçalar, basit düz renklerden resimlere, çizimlere ve karmaşık efekt zincirlerine kadar çeşitli içeriklerle kullanıcı arabirimi (UI) nesnelerini boyamanızı sağlar. Bu konu, CompositionBrush ile boyama kavramlarını tanıtır.
WinUI XAML uygulamasıyla çalışırken XAML fırçası veya CompositionBrush ile UIElement boyamayı seçebilirsiniz. Senaryonuz zaten bir tane tarafından destekleniyorsa, genellikle XAML fırçası seçmek daha kolaydır. Örneğin, bir düğmenin renginin animasyonunu oluşturma veya metin veya şekil dolgusunun resimle değiştirilmesi. XAML fırça tarafından desteklenmeyen, animasyonlu maske, animasyonlu dokuz bölge esnetme veya efekt zinciri gibi bir duruma ihtiyacınız varsa, XamlCompositionBrushBase aracılığıyla bir UIElement boyamak için CompositionBrush kullanabilirsiniz.
Görsel katmanıyla çalışırken, SpriteVisual alanını boyamak için bir CompositionBrush kullanılmalıdır.
- Ön koşullar
-
CompositionBrush ile Boyama
- Düz bir renkle boyama
- Doğrusal gradyan ile boyama
- Radyal gradyan ile boyama
- Bir resimle boyama yapın
- Özel bir çizimle boyayın
- Video ile boyama
- Filtre efektiyle boyama
- Opaklık maskesiyle CompositionBrush kullanarak boyama yapın
- CompositionBrush kullanarak NineGrid germe ile boyama
- Arka Plan Piksellerini Kullanarak Boyama
- CompositionBrush'ları Birleştirme
- XAML Fırçası ve CompositionBrush Kullanımı
- İlgili Konular
Önkoşullar
Bu genel bakış, Görsel katmanına genel bakış bölümünde açıklandığı gibi temel bir Oluşturma uygulamasının yapısı hakkında bilgi sahibi olduğunuzu varsayar.
CompositionBrush ile Boyama
CompositionBrush, çıktısını kullanarak bir alanı "boyar". Farklı fırçaların farklı çıkış türleri vardır. Bazı fırçalar düz renkle bir alanı, diğerleri gradyan, resim, özel çizim veya efektle boyar. Diğer fırçaların davranışını değiştiren özelleştirilmiş fırçalar da vardır. Örneğin, opaklık maskesi bir CompositionBrush tarafından hangi alanın boyanacağını denetlemek için kullanılabilir veya bir alanı boyarken CompositionBrush'a uygulanan esnetmeyi denetlemek için dokuz kılavuzlu bir kılavuz kullanılabilir. CompositionBrush aşağıdaki türlerden biri olabilir:
| Sınıf | Ayrıntılar |
|---|---|
| CompositionColorBrush | Bir alanı düz bir renkle boyar |
| CompositionSurfaceBrush | Bir alanı ICompositionSurface içeriğiyle boyar |
| CompositionEffectBrush | Bir alanı bir kompozisyon efektinin içeriğiyle boyar |
| CompositionMaskBrush | CompositionBrush kullanarak opaklık maskesiyle bir görseli boyar |
| CompositionNineGridBrush | Bir alanı CompositionBrush ile NineGrid esnetme kullanarak boyar. |
| CompositionLinearGradientBrush | Doğrusal gradyan ile bir alanı boyar |
| CompositionRadialGradientBrush | Radyal gradyan ile bir alanı boyar |
| CompositionBackdropBrush | Uygulamadan veya masaüstündeki uygulamanın penceresinin hemen arkasındaki piksellerden arka plan piksellerini örnekleyerek bir alanı boyar. CompositionEffectBrush gibi başka bir CompositionBrush'a giriş olarak kullanılır |
Düz bir renkle boyayın
CompositionColorBrush, bir alanı düz bir renkle boyar. SolidColorBrush'ın rengini belirtmenin çeşitli yolları vardır. Örneğin, alfa, kırmızı, mavi ve yeşil (ARGB) kanallarını belirtebilir veya Colors sınıfı tarafından sağlanan önceden tanımlanmış renklerden birini kullanabilirsiniz.
Aşağıdaki çizimde ve kodda, siyah renk fırçasıyla konturlanmış ve 0x9ACD32 renk değerine sahip düz bir renk fırçasıyla boyanmış bir dikdörtgen oluşturmak için küçük bir görsel ağaç gösterilmektedir.
Compositor _compositor;
ContainerVisual _container;
SpriteVisual _colorVisual1, _colorVisual2;
CompositionColorBrush _blackBrush, _greenBrush;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
_container = _compositor.CreateContainerVisual();
_blackBrush = _compositor.CreateColorBrush(Colors.Black);
_colorVisual1 = _compositor.CreateSpriteVisual();
_colorVisual1.Brush = _blackBrush;
_colorVisual1.Size = new Vector2(156, 156);
_colorVisual1.Offset = new Vector3(0, 0, 0);
_container.Children.InsertAtBottom(_colorVisual1);
_greenBrush = _compositor.CreateColorBrush(Color.FromArgb(0xff, 0x9A, 0xCD, 0x32));
_colorVisual2 = _compositor.CreateSpriteVisual();
_colorVisual2.Brush = _greenBrush;
_colorVisual2.Size = new Vector2(150, 150);
_colorVisual2.Offset = new Vector3(3, 3, 0);
_container.Children.InsertAtBottom(_colorVisual2);
Doğrusal gradyan ile boyama
CompositionLinearGradientBrush bir alanı doğrusal gradyanla boyar. Doğrusal gradyan, gradyan ekseni olmak üzere iki veya daha fazla rengi bir çizgi boyunca harmanlar. Gradyandaki renkleri ve bunların konumlarını belirtmek için GradientStop nesnelerini kullanırsınız.
Aşağıdaki çizimde ve kodda, kırmızı ve sarı renk kullanılarak 2 duraklı LinearGradientBrush ile boyanmış bir SpriteVisual gösterilmektedir.
Compositor _compositor;
SpriteVisual _gradientVisual;
CompositionLinearGradientBrush _redyellowBrush;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
_redyellowBrush = _compositor.CreateLinearGradientBrush();
_redyellowBrush.ColorStops.Add(_compositor.CreateColorGradientStop(0, Colors.Red));
_redyellowBrush.ColorStops.Add(_compositor.CreateColorGradientStop(1, Colors.Yellow));
_gradientVisual = _compositor.CreateSpriteVisual();
_gradientVisual.Brush = _redyellowBrush;
_gradientVisual.Size = new Vector2(156, 156);
Radyal gradyan ile boyama
CompositionRadialGradientBrush bir alanı radyal gradyan ile boyar. Radyal gradyan, elipsin merkezinden başlayıp elipsin yarıçapında biten gradyan ile iki veya daha fazla rengi harmanlar. GradyanStop nesneleri, renkleri ve gradyandaki konumlarını tanımlamak için kullanılır.
Aşağıdaki çizimde ve kodda 2 GradyanStoplu RadialGradientBrush ile boyanmış bir SpriteVisual gösterilmektedir.
Compositor _compositor;
SpriteVisual _gradientVisual;
CompositionRadialGradientBrush RGBrush;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
RGBrush = _compositor.CreateRadialGradientBrush();
RGBrush.ColorStops.Add(_compositor.CreateColorGradientStop(0, Colors.Aquamarine));
RGBrush.ColorStops.Add(_compositor.CreateColorGradientStop(1, Colors.DeepPink));
_gradientVisual = _compositor.CreateSpriteVisual();
_gradientVisual.Brush = RGBrush;
_gradientVisual.Size = new Vector2(200, 200);
Bir resimle boyama
CompositionSurfaceBrush, piksellerin işlendiği bir alanı ICompositionSurface üzerine boyar. Örneğin, CompositionSurfaceBrush, LoadedImageSurface API'sini kullanarak ICompositionSurface üzerine işlenmiş bir görüntüyle bir alanı boyamak için kullanılabilir.
Aşağıdaki çizimde ve kodda, LoadedImageSurface kullanılarak bir ICompositionSurface üzerinde işlenen meyan kökü bit eşlemi ile boyanmış bir SpriteVisual gösterilmektedir. CompositionSurfaceBrush'ın özellikleri, bit eşlemi görselin sınırları içinde genişletmek ve hizalamak için kullanılabilir.
Compositor _compositor;
SpriteVisual _imageVisual;
CompositionSurfaceBrush _imageBrush;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
_imageBrush = _compositor.CreateSurfaceBrush();
// The loadedSurface has a size of 0x0 till the image has been downloaded, decoded and loaded to the surface. We can assign the surface to the CompositionSurfaceBrush and it will show up once the image is loaded to the surface.
LoadedImageSurface _loadedSurface = LoadedImageSurface.StartLoadFromUri(new Uri("ms-appx:///Assets/licorice.jpg"));
_imageBrush.Surface = _loadedSurface;
_imageVisual = _compositor.CreateSpriteVisual();
_imageVisual.Brush = _imageBrush;
_imageVisual.Size = new Vector2(156, 156);
Kendi çiziminizle boyayın
CompositionSurfaceBrush, Win2D (veya D2D) kullanılarak işlenen bir ICompositionSurface'den piksel içeren bir alanı boyamak için de kullanılabilir.
Aşağıdaki kod, Win2D kullanılarak ICompositionSurface üzerinde işlenen bir metin çalışmasıyla boyanmış bir SpriteVisual'ı gösterir. Win2D'yi WinUI ile kullanmak için projenize Microsoft.Graphics.Win2D NuGet paketini yükleyin.
Compositor _compositor;
CanvasDevice _device;
CompositionGraphicsDevice _compositionGraphicsDevice;
SpriteVisual _drawingVisual;
CompositionSurfaceBrush _drawingBrush;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
_device = CanvasDevice.GetSharedDevice();
_compositionGraphicsDevice = CanvasComposition.CreateCompositionGraphicsDevice(_compositor, _device);
_drawingBrush = _compositor.CreateSurfaceBrush();
CompositionDrawingSurface _drawingSurface = _compositionGraphicsDevice.CreateDrawingSurface(
new Size(256, 256),
DirectXPixelFormat.B8G8R8A8UIntNormalized,
DirectXAlphaMode.Premultiplied);
using (var ds = CanvasComposition.CreateDrawingSession(_drawingSurface))
{
ds.Clear(Colors.Transparent);
var rect = new Rect(new Point(2, 2), (_drawingSurface.Size.ToVector2() - new Vector2(4, 4)).ToSize());
ds.FillRoundedRectangle(rect, 15, 15, Colors.LightBlue);
ds.DrawRoundedRectangle(rect, 15, 15, Colors.Gray, 2);
ds.DrawText("This is a composition drawing surface", rect, Colors.Black, new CanvasTextFormat()
{
FontFamily = "Comic Sans MS",
FontSize = 32,
WordWrapping = CanvasWordWrapping.WholeWord,
VerticalAlignment = CanvasVerticalAlignment.Center,
HorizontalAlignment = CanvasHorizontalAlignment.Center
});
}
_drawingBrush.Surface = _drawingSurface;
_drawingVisual = _compositor.CreateSpriteVisual();
_drawingVisual.Brush = _drawingBrush;
_drawingVisual.Size = new Vector2(156, 156);
Benzer şekilde, CompositionSurfaceBrush, Win2D uyumluluğu kullanılarak SwapChain ile bir SpriteVisual'ı boyamak için de kullanılabilir. Bu örnek, Win2D kullanarak bir SpriteVisual'ı bir swapchain ile boyama yöntemini gösterir.
Video ile boyama
CompositionSurfaceBrush, MediaPlayer sınıfı aracılığıyla yüklenen bir video kullanılarak işlenen bir ICompositionSurface'den piksel içeren bir alanı boyamak için de kullanılabilir.
Aşağıdaki kod, ICompositionSurface üzerine yüklenmiş bir video ile boyanmış bir SpriteVisual gösterir.
Compositor _compositor;
SpriteVisual _videoVisual;
CompositionSurfaceBrush _videoBrush;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
// MediaPlayer setup with a source URI.
_mediaPlayer = new MediaPlayer();
// Get a source from a URI. This could also come from a file or a stream.
var source = MediaSource.CreateFromUri(new Uri("https://go.microsoft.com/fwlink/?LinkID=809007&clcid=0x409"));
var item = new MediaPlaybackItem(source);
_mediaPlayer.Source = item;
_mediaPlayer.IsLoopingEnabled = true;
// Get the surface from MediaPlayer and put it on a brush.
_videoSurface = _mediaPlayer.GetSurface(_compositor);
_videoBrush = _compositor.CreateSurfaceBrush(_videoSurface.CompositionSurface);
_videoVisual = _compositor.CreateSpriteVisual();
_videoVisual.Brush = _videoBrush;
_videoVisual.Size = new Vector2(156, 156);
Filtre efektiyle boyama
CompositionEffectBrush, bir CompositionEffect çıktısını kullanarak bir alanı boyar. Görsel Katmanı'ndaki efektler, renkler, gradyanlar, görüntüler, videolar, takas zincirleri, kullanıcı arabiriminizin bölgeleri veya Görsel ağaçları gibi kaynak içerik koleksiyonuna uygulanan animasyonlanabilir filtre efektleri olarak düşünülebilir. Kaynak içerik genellikle başka bir CompositionBrush kullanılarak belirtilir.
Aşağıdaki çizimde ve kodda doyma filtresi efekti uygulanmış bir kedinin görüntüsüyle boyanmış bir SpriteVisual gösterilmektedir.
Compositor _compositor;
SpriteVisual _effectVisual;
CompositionEffectBrush _effectBrush;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
var graphicsEffect = new SaturationEffect
{
Saturation = 0.0f,
Source = new CompositionEffectSourceParameter("mySource")
};
var effectFactory = _compositor.CreateEffectFactory(graphicsEffect);
_effectBrush = effectFactory.CreateBrush();
CompositionSurfaceBrush surfaceBrush = _compositor.CreateSurfaceBrush();
LoadedImageSurface loadedSurface = LoadedImageSurface.StartLoadFromUri(new Uri("ms-appx:///Assets/cat.jpg"));
surfaceBrush.Surface = loadedSurface;
_effectBrush.SetSourceParameter("mySource", surfaceBrush);
_effectVisual = _compositor.CreateSpriteVisual();
_effectVisual.Brush = _effectBrush;
_effectVisual.Size = new Vector2(156, 156);
CompositionBrushes kullanarak Efekt oluşturma hakkında daha fazla bilgi için bkz. Görsel katmanındaki efektler
Opaklık maskesi uygulanmış bir CompositionBrush ile boyama
CompositionMaskBrush, bir alanı, üzerine opaklık maskesi uygulanmış bir CompositionBrush ile boyar. Opaklık maskesinin kaynağı CompositionColorBrush, CompositionLinearGradientBrush, CompositionSurfaceBrush, CompositionEffectBrush veya CompositionNineGridBrush türünde herhangi bir CompositionBrush olabilir. Opaklık maskesi bir CompositionSurfaceBrush olarak belirtilmelidir.
Aşağıdaki çizimde ve kodda CompositionMaskBrush ile boyanmış bir SpriteVisual gösterilmektedir. Maskenin kaynağı, daire şeklinde görünmesi için daire görüntüsü maske olarak kullanılarak maskelenmiş bir CompositionLinearGradientBrush'tır.
Compositor _compositor;
SpriteVisual _maskVisual;
CompositionMaskBrush _maskBrush;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
_maskBrush = _compositor.CreateMaskBrush();
CompositionLinearGradientBrush _sourceGradient = _compositor.CreateLinearGradientBrush();
_sourceGradient.ColorStops.Add(_compositor.CreateColorGradientStop(0,Colors.Red));
_sourceGradient.ColorStops.Add(_compositor.CreateColorGradientStop(1,Colors.Yellow));
_maskBrush.Source = _sourceGradient;
LoadedImageSurface loadedSurface = LoadedImageSurface.StartLoadFromUri(new Uri("ms-appx:///Assets/circle.png"), new Size(156.0, 156.0));
_maskBrush.Mask = _compositor.CreateSurfaceBrush(loadedSurface);
_maskVisual = _compositor.CreateSpriteVisual();
_maskVisual.Brush = _maskBrush;
_maskVisual.Size = new Vector2(156, 156);
NineGrid esnetme kullanarak bir CompositionBrush ile boyayın.
CompositionNineGridBrush, dokuz ızgara metaforu kullanılarak gerilmiş bir CompositionBrush ile bir alanı boyar. Dokuz bölmeli metafor, CompositionBrush'ın kenarlarını ve köşelerini merkezinden farklı olarak genişletmenize olanak tanır. Dokuz kılavuzlu esnetmenin kaynağı, CompositionColorBrush, CompositionSurfaceBrush veya CompositionEffectBrush türünde herhangi bir CompositionBrush olabilir.
Aşağıdaki kod, CompositionNineGridBrush ile boyanmış bir SpriteVisual gösterir. Maskenin kaynağı, Nine-Grid kullanılarak esnetilen bir CompositionSurfaceBrush'dır.
Compositor _compositor;
SpriteVisual _nineGridVisual;
CompositionNineGridBrush _nineGridBrush;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
_nineGridBrush = _compositor.CreateNineGridBrush();
// nineGridImage.png is 50x50 pixels; nine-grid insets, as measured relative to the actual size of the image, are: left = 1, top = 5, right = 10, bottom = 20 (in pixels)
LoadedImageSurface _imageSurface = LoadedImageSurface.StartLoadFromUri(new Uri("ms-appx:///Assets/nineGridImage.png"));
CompositionSurfaceBrush sourceBrush = _compositor.CreateSurfaceBrush(_imageSurface);
_nineGridBrush.Source = sourceBrush;
// Set nine-grid insets.
_nineGridBrush.SetInsets(1, 5, 10, 20);
// Set the appropriate stretch on the SurfaceBrush for the center of the nine-grid.
sourceBrush.Stretch = CompositionStretch.Fill;
_nineGridVisual = _compositor.CreateSpriteVisual();
_nineGridVisual.Brush = _nineGridBrush;
_nineGridVisual.Size = new Vector2(100, 75);
Arka Plan Piksellerini Kullanarak Boyama
CompositionBackdropBrush, alanın arkasındaki içeriğe sahip bir alanı boyar. CompositionBackdropBrush hiçbir zaman kendi başına kullanılmaz, ancak bunun yerine EffectBrush gibi başka bir CompositionBrush'a giriş olarak kullanılır. Örneğin, Bir CompositionBackdropBrush'ı Bulanıklaştırma efektine giriş olarak kullanarak buzlu cam efekti elde edebilirsiniz.
Aşağıdaki kod, CompositionSurfaceBrush kullanarak görüntü oluşturmak için küçük bir görsel ağacı ve görüntünün üzerinde buzlu cam katmanını gösterir. Buzlu cam katman, resmin üzerine EffectBrush ile doldurulmuş bir SpriteVisual yerleştirilerek oluşturulur. EffectBrush, bulanıklaştırma efektine giriş olarak CompositionBackdropBrush kullanır.
Compositor _compositor;
ContainerVisual _containerVisual;
SpriteVisual _imageVisual;
SpriteVisual _backdropVisual;
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
// Create a container visual to host the visual tree.
_containerVisual = _compositor.CreateContainerVisual();
// Create _imageVisual and add it to the bottom of the container visual.
CompositionSurfaceBrush _licoriceBrush = _compositor.CreateSurfaceBrush();
LoadedImageSurface loadedSurface = LoadedImageSurface.StartLoadFromUri(new Uri("ms-appx:///Assets/licorice.jpg"));
_licoriceBrush.Surface = loadedSurface;
_imageVisual = _compositor.CreateSpriteVisual();
_imageVisual.Brush = _licoriceBrush;
_imageVisual.Size = new Vector2(156, 156);
_imageVisual.Offset = new Vector3(0, 0, 0);
_containerVisual.Children.InsertAtBottom(_imageVisual);
// Create a SpriteVisual and add it to the top of the container visual.
// Paint the visual with an EffectBrush that applies blur to the content underneath it.
GaussianBlurEffect blurEffect = new GaussianBlurEffect()
{
Name = "Blur",
BlurAmount = 1.0f,
BorderMode = EffectBorderMode.Hard,
Source = new CompositionEffectSourceParameter("source")
};
CompositionEffectFactory blurEffectFactory = _compositor.CreateEffectFactory(blurEffect);
CompositionEffectBrush _backdropBrush = blurEffectFactory.CreateBrush();
// Create a BackdropBrush and bind it to the EffectSourceParameter source.
_backdropBrush.SetSourceParameter("source", _compositor.CreateBackdropBrush());
_backdropVisual = _compositor.CreateSpriteVisual();
_backdropVisual.Brush = _backdropBrush;
_backdropVisual.Size = new Vector2(78, 78);
_backdropVisual.Offset = new Vector3(39, 39, 0);
_containerVisual.Children.InsertAtTop(_backdropVisual);
CompositionBrush'ları Birleştirme
Bazı CompositionBrush'lar giriş olarak diğer CompositionBrush'ları kullanır. Örneğin, SetSourceParameter yöntemini kullanarak başka bir CompositionBrush'ı CompositionEffectBrush'a girdi olarak ayarlayabilirsiniz. Aşağıdaki tabloda, Desteklenen CompositionBrushes birleşimleri özetlenmektedir. Desteklenmeyen bir birleşim kullanmanın özel durum oluşturacağını unutmayın.
| Fırça | EffectBrush.SetSourceParameter() | MaskBrush.Mask | MaskBrush.Source | NineGridBrush.Source |
|---|---|---|---|---|
| CompositionColorBrush (BileşimRenkFırçası) | EVET | EVET | EVET | EVET |
| CompositionLinear Gradyan Fırça |
EVET | EVET | EVET | HAYIR |
| CompositionSurfaceBrush | EVET | EVET | EVET | EVET |
| CompositionEffectBrush | HAYIR | HAYIR | EVET | HAYIR |
| CompositionMaskBrush | HAYIR | HAYIR | HAYIR | HAYIR |
| KompozisyonDokuzIzgaraFırçası | EVET | EVET | EVET | HAYIR |
| Bileşim Arka Plan Fırçası | EVET | HAYIR | HAYIR | HAYIR |
XAML Fırçası ve CompositionBrush Kullanımı
Aşağıdaki tabloda senaryoların bir listesi ve uygulamanızda bir UIElement veya SpriteVisual boyanırken XAML veya Composition Brush kullanımının önerilip önerilmediği gösterilir.
Uyarı
XAML UIElement için bir CompositionBrush önerilirse, CompositionBrush'ın bir XamlCompositionBrushBase kullanılarak paketlendiği varsayılır.
| Scenario | XAML UIElement | Composition SpriteVisual |
|---|---|---|
| Düz renkle bir alanı boyama | SolidColorBrush | CompositionColorBrush |
| Bir alanı animasyonlu renkle boyama | SolidColorBrush | CompositionColorBrush |
| Statik gradyan ile bir alanı boyama | LinearGradientBrush | CompositionLinearGradientBrush |
| Animasyonlu gradyan durakları olan bir alanı boyama | CompositionLinearGradientBrush | CompositionLinearGradientBrush |
| Bir alanı resimle boyama | Imagebrush | CompositionSurfaceBrush |
| Web sayfasıyla bir alanı boyama | WebView2 | Mevcut Değil |
| NineGrid genişletme kullanarak bir alanı resimle boyama | Görüntü Denetimi | CompositionNineGridBrush |
| Animasyonlu NineGrid esnetme teknolojisi ile bir alanı boyama | CompositionNineGridBrush | CompositionNineGridBrush |
| Bir alanı swapchain kullanarak boyama | SwapChainPanel | CompositionSurfaceBrush ile swapchain interop |
| Video ile bir alanı boyama | MediaPlayerElement | CompositionSurfaceBrush ile medya birlikte çalışması |
| Özel 2B çizimle bir alanı boyama | Win2D'den CanvasControl | CompositionSurfaceBrush ile Win2D etkileşimi |
| Animasyonsuz maske ile bir alanı boyama | Maske tanımlamak için XAML şekillerini kullanma | CompositionMaskBrush |
| Animasyonlu maske ile bir alanı boyama | CompositionMaskBrush | CompositionMaskBrush |
| Bir alanı animasyonlu filtre efektiyle boyama | CompositionEffectBrush | CompositionEffectBrush |
| Arka plan piksellerine efekt uygulanmış bir alanı boyama | CompositionBackdropBrush | CompositionBackdropBrush |
İlgili Konular
BeginDraw ve EndDraw ile yerel DirectX ve Direct2D bileşimini birlikte çalışma
XamlCompositionBrushBase ile XAML Fırçası Birlikte Çalışabilirliği
Windows developer