如何将XAML画笔转换为Direct2D画笔?

时间:2012-06-12 15:32:12

标签: xaml direct2d microsoft-metro

我正在开发Metro Style App。在Metro,你可以mix XAML and DirectX。我正在创建一个XAML用户控件,它使用共享表面在Direct2D中呈现一些内容。我希望能够在XAML中指定一个可以用来填充Direct2D几何体的画笔。

我认为我需要做的是将Windows::UI::Xaml::Media::Brush转换为ID2D1Brush

1 个答案:

答案 0 :(得分:1)

Direct2D接口与XAML类密切对应。但是,有些内容只有ID2D1Brush才能复制或模拟,例如TransformRelativeTransform。如果你看一下像TileBrushLinearGradientBrush.MappingMode这样的事情,事情会变得更糟。您需要为ID2D1RenderTarget创建自己的包装器,考虑到比通常可用的更多因素。

Direct2D是一个低级绘图API,而XAML类是更大的表示/ UI框架(它是简化的WPF / Silverlight)的一部分。如果您不担心无法复制或模拟的属性,那么只需创建一些静态实用程序方法即可在两者之间进行转换。