我有一个在XAML中定义的图标,其根元素为Viewbox
。我想将其设置为Source
元素的Image
。
我试图将其直接设置为图像源,例如...
<Button Margin='5'>
<Image Source='{StaticResource IconKey}'></Image>
</Button>
但是我有一个例外。有办法吗?
答案 0 :(得分:1)
这是一个很大的主题,对于初学者来说是个棘手的问题,因为需要太多“东西”才能使您动脑筋。
我将尝试涵盖该主题的一些内容。希望这可以减轻您的困惑。
路径使用的数据看起来与所有这些奇怪的坐标东西都有些奇怪。这可以直接在路径中,也可以在几何体(或流几何体)中进行。如果您使用的是几何图形,那么该几何图形可用于红色(无论蓝色)等等。它也不是视觉对象,因此您不会因为只能拥有一个父对象而被视觉对象吸引住-即在任何用户界面。
我通常要做的事情是获得一个单一的几何体。 经常不在syncfusion Metro Studio(这是一个免费库)中,但有时我使用inkscape(免费)来跟踪位图,或者从svg中获取路径。
不过,您可以组合两个几何。
在由app.xaml合并的资源字典中,您可以具有几何图形:
<CombinedGeometry x:Key="TwoGeometriesInOne">
<CombinedGeometry.Geometry1>
<Geometry>
M3,1.6675c0,-0.1795..... and the rest of your first geometry data
</Geometry>
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<Geometry>
M15.9289,7.776L5.285,....
</Geometry>
</CombinedGeometry.Geometry2>
</CombinedGeometry>
巨大的长字符串弄乱了站点,但是这两个几何应该只具有M ...到用于每个路径的数据的z。
在按钮(或任何其他内容控件)中使用它
<Button Height="40" Width="40">
<Path Fill="#3E79B4" Data="{StaticResource TwoGeometriesInOne}"
Height="16"
Width="16"
Stretch="Fill"/>
</Button>
请注意,路径只能单独使用,而不是在画布中使用,也可以调整大小,也可以将其拉伸以适合其大小或父级允许的大小。
还请考虑:
<Button Height="40" Width="40">
<Path Fill="#3E79B4" Data="{StaticResource TwoGeometriesInOne}"
Stretch="UniformToFill"
Margin="5"
/>
</Button>
使用路径可以填充和描边。描边是轮廓。如果要在一个“图标”中使用不同颜色的形状,则具有多个几何图形的图形更适合,因为每个几何图形都可以拥有自己的画笔。
答案 1 :(得分:0)
我找到了另一种选择。我没有使用按钮内的Image
,而是使用Button
的{{1}}属性。
Content