2012-06-12 5 views
0

메트로 스타일 앱을 제작 중입니다. 메트로에서는 mix XAML and DirectX 수 있습니다. 공유 표면을 사용하여 Direct2D의 일부 내용을 렌더링하는 XAML 사용자 정의 컨트롤을 만들고 있습니다. Direct2D에서 지오메트리를 채우기 위해 사용할 수있는 브러시를 XAML에서 지정할 수 있어야합니다.XAML 브러시를 Direct2D 브러시로 변환하려면 어떻게합니까?

내가 할 수 있어야한다고 생각하는 것은 Windows::UI::Xaml::Media::BrushID2D1Brush으로 변환하는 것입니다.

답변

1

Direct2D 인터페이스는 XAML 클래스와 밀접한 관련이 있습니다. 그러나 복사 할 수 없거나 에뮬레이트 할 수없는 여러 가지 사항이 있습니다 (예 : ID2D1Brush) (예 : TransformRelativeTransform). TileBrush 또는 LinearGradientBrush.MappingMode과 같은 것을 보면 훨씬 더 나 빠지게됩니다. ID2D1RenderTarget에 대한 래퍼를 직접 만들어야하는데 일반적으로 다른 방법보다 많은 요소가 고려되었습니다.

Direct2D는 낮은 수준의 드로잉 API이지만 XAML 클래스는 더 큰 프레젠테이션/UI 프레임 워크 (WPF/Silverlight의 축소판)의 일부입니다. 복사하거나 에뮬레이션 할 수없는 속성에 대해 걱정하지 않는다면 두 가지 사이의 변환을위한 정적 유틸리티 메소드를 작성하십시오.

관련 문제