我有一個帶有ResourceDictionary的.xaml文件,其中包含我所有的自定義圖標。從資源中顯示XAML中圖像的首選方式
例如爲:
<Canvas x:Key="imgFoo" Width="16" Height="16">
<Path Fill="#FFFF0000" StrokeThickness="3" Stroke="#FFFF0000" StrokeMiterLimit="4" StrokeLineJoin="Round" StrokeStartLineCap="Round" StrokeEndLineCap="Round">
<Path.Data>
<PathGeometry Figures="M 2.0722892 ..... 4.0457831" FillRule="NonZero"/>
</Path.Data>
</Path>
</Canvas>
現在的問題:什麼是使用XAML這一資源的最佳方式?
難道例如像這樣:
<TabItem>
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<ContentControl Content="{StaticResource imgFoo}" />
<TextBlock Text="Foo" />
</StackPanel>
</TabItem.Header>
使用ContentControl中使用,並顯示該資源的正確方法是什麼?
更新: 和這種使用畫筆和邊框的方法呢?這是一個好方法嗎?
<DrawingBrush x:Key="imgF00">
<DrawingBrush.Drawing>
<GeometryDrawing>
<GeometryDrawing.Pen>
<Pen Thickness="3" MiterLimit="4" LineJoin="Round" StartLineCap="Round" EndLineCap="Round" Brush="#FFFF0000" />
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry Figures="M 2.0722892 ... 4.0457831" FillRule="NonZero" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
顯示它通過邊界:
<TabItem>
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<Border Background="{StaticResource imgFail2}" Width="16" Height="16" />
<TextBlock Text="Failure" />
</StackPanel>
</TabItem.Header>
對於應用程序中的所有圖標,Path屬性(Fill,Stroke,StrokeThickness,...)是否相同?或者你是否至少有一組特定的圖標路徑屬性組合? – Clemens
無論如何,你應該避免使用UI元素作爲資源。您可以使用PathGeometry作爲資源,或者如果每個圖標都有不同的填充和描邊等,可以使用GeometryDrawing。 – Clemens
當前我的圖紙是在此處顯示的畫布中的路徑... – juFo