我正在开发Metro Style App。在Metro,你可以mix XAML and DirectX。我正在创建一个XAML用户控件,它使用共享表面在Direct2D中呈现一些内容。我希望能够在XAML中指定一个可以用来填充Direct2D几何体的画笔。
我认为我需要做的是将Windows::UI::Xaml::Media::Brush转换为ID2D1Brush。
答案 0 :(得分:1)
Direct2D接口与XAML类密切对应。但是,有些内容只有ID2D1Brush
才能复制或模拟,例如Transform
与RelativeTransform
。如果你看一下像TileBrush
或LinearGradientBrush.MappingMode
这样的事情,事情会变得更糟。您需要为ID2D1RenderTarget
创建自己的包装器,考虑到比通常可用的更多因素。
Direct2D是一个低级绘图API,而XAML类是更大的表示/ UI框架(它是简化的WPF / Silverlight)的一部分。如果您不担心无法复制或模拟的属性,那么只需创建一些静态实用程序方法即可在两者之间进行转换。