3
Q
WPF複合形狀
A
回答
1
對於大多數情況下,將它們放在ControlTemplate或DataTemplate中效果最好。這裏的控件模板的方式:
<ResourceDictionary>
<ControlTemplate x:Key="MyShape">
<Grid With="..." Height="...">
<Rectangle ... />
<Ellipse ... />
<Path ... />
</Grid>
</ControlTemplate>
</ResourceDictionary>
...
<Canvas ...>
<Control Template="{StaticResource MyShape}" ... />
<Control Template="{StaticResource MyShape}" ... />
<Control Template="{StaticResource MyShape}" ... />
<Control Template="{StaticResource MyShape}" ... />
</Canvas>
而DataTemplate的方式:
<ResourceDictionary>
<DataTemplate x:Key="MyShape">
<Grid With="..." Height="...">
<Rectangle ... />
<Ellipse ... />
<Path ... />
</Grid>
</DataTemplate>
</ResourceDictionary>
...
<Canvas ...>
<ContentPresenter ContentTemplate="{StaticResource MyShape}" ... />
<ContentPresenter ContentTemplate="{StaticResource MyShape}" ... />
<ContentPresenter ContentTemplate="{StaticResource MyShape}" ... />
<ContentPresenter ContentTemplate="{StaticResource MyShape}" ... />
</Canvas>
爲了它們之間選擇,決定你想要什麼額外的功能(如果有的話)。您可能想要將屬性添加到控件或數據對象。
- 如果使用ControlTemplate,您的自定義控件可以參與屬性繼承併成爲可視樹的一部分,接收所有事件。您還可以在綁定中引用DataContext和TemplatedParent,這更加靈活。
- 如果使用DataTemplate,可以直接針對模型中的對象工作。
除了列出單獨的控件,您還可以使用ItemsControl及其子類(ListBox,ComboBox等)來適當地呈現您的形狀。
替代方法
另一種完全不同的方式對你的形狀的集合轉換爲圖形對象,並使用DrawingImage或DrawingBrush出示。
相關問題
- 1. 複合XML形狀
- 2. WPF邊界形狀
- 3. WPF形狀文本
- 4. 移動WPF形狀
- 5. WPF剪輯形狀
- 6. 繪圖問題 - 從其他形狀繪製複合形狀
- 7. 在Java中創建複合形狀2D
- 8. PowerPoint形狀不在形狀集合
- 9. WPF路徑形狀標題
- 10. WPF自定義形狀
- 11. vba形狀集合
- 12. WPF形狀矩形邊框總是空
- 13. WPF描繪的多邊形形狀
- 14. 在WPF中選擇圖形和形狀
- 15. 創建樹狀結合WPF
- 16. 複合WPF和AvalonDock
- 17. WPF複合控件
- 18. 在WPF中合併形狀並附加部分拖放
- 19. C#中的相鄰形狀的聯合/ WPF
- 20. 從形狀派生的WPF自定義形狀類
- 21. WPF/XAML畫布中的可重複形狀
- 22. 複合狀態圖
- 23. WPF隱形複選框
- 24. 如何將矩形或圓形狀轉換爲WPF中的筆尖點集合?
- 25. Java中的形狀組合?
- 26. opengl適合任意形狀
- 27. 對齊C3符合條形圖形狀
- 28. Cannon.js複雜的形狀
- 29. 複雜形狀識別
- 30. CSS/HTML複雜形狀