gpt4 book ai didi

wpf - 使用 XAML 中的样式将 MenuItem 的 Icon 属性值设置为 Shapes.Path

转载 作者:行者123 更新时间:2023-12-02 15:40:40 24 4
gpt4 key购买 nike

我正在使用 Silverlight 4 和 Expression Blend 4。

我正在为 MenuItem 设置路径为 Icon 的样式。

<Style x:Key="1234" TargetType="Controls:MenuItem">
<Setter Property="Header" Value="Cancel" />
<Setter Property="Icon">
<Setter.Value>
<Path Fill="#FF2B2B2B"
Width="14.3775"
Height="14"
Canvas.Left="0.311264"
Canvas.Top="0.500005"
Stretch="Fill"
Data="F1 M 111.2,-85.6L 124.2,-85.6L 124.2,-72.6L 111.2,-72.6L 111.2,-85.6 Z M 117.791,-82.3439L 117.791,-80.4506L 112.685,-80.4506L 112.685,-77.8084L 117.791,-77.8084L 117.791,-75.8748L 121.025,-79.1094L 117.791,-82.3439 Z M 121.657,-84.0222L 121.657,-74.0222L 122.657,-74.0222L 122.657,-84.0222L 121.657,-84.0222 Z " />
</Setter.Value>
</Setter>
</Style>

但是当我尝试打开它时,这给出了一个异常表达式混合。

异常消息:调用 COM 组件返回错误 HRESULT E_FAIL在 MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cdData)

当我将此样式添加到 ContextMenu 的项目时,这也会在运行时给出异常。

最佳答案

将样式放在控件模板中:

<ControlTemplate x:Key="CancelIcon">
<Canvas>
<Path Fill="#FF2B2B2B"
Width="14.3775"
Height="14"
Canvas.Left="0.311264"
Canvas.Top="0.500005"
Stretch="Fill"
Data="F1 M 111.2,-85.6L 124.2,-85.6L 124.2,-72.6L 111.2,-72.6L 111.2,-85.6 Z M 117.791,-82.3439L 117.791,-80.4506L 112.685,-80.4506L 112.685,-77.8084L 117.791,-77.8084L 117.791,-75.8748L 121.025,-79.1094L 117.791,-82.3439 Z M 121.657,-84.0222L 121.657,-74.0222L 122.657,-74.0222L 122.657,-84.0222L 121.657,-84.0222 Z " />
</Canvas>
</ControlTemplate>

然后对于菜单尝试以下

<MenuItem Header="Cancel" >
<MenuItem.Icon>
<ContentControl Template="{StaticResource CancelIcon}" />
</MenuItem.Icon>
</MenuItem>

希望这会成功:-)

关于wpf - 使用 XAML 中的样式将 MenuItem 的 Icon 属性值设置为 Shapes.Path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6980673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com