Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 图标菜单项的图标数据模板_Wpf_Xaml - Fatal编程技术网

Wpf 图标菜单项的图标数据模板

Wpf 图标菜单项的图标数据模板,wpf,xaml,Wpf,Xaml,我为menuitem.icon创建了一些图形 然后我尝试将此模板用于menuitem.icon 但它是空的菜单项。如果我在MenuItem.Icon中插入模板代码,首先一切正常:绑定错误。必须将此键用作{DynamicResource navigation\u arrow}或{StaticResource navigation\u arrow} 但它不起作用。在本例中,您的图标将是“System.Windows.DataTemplate”字符串 DataTemplate表示“它将为数据应

我为menuitem.icon创建了一些图形


然后我尝试将此模板用于menuitem.icon



但它是空的菜单项。如果我在MenuItem.Icon中插入模板代码,首先一切正常:绑定错误。必须将此键用作
{DynamicResource navigation\u arrow}
{StaticResource navigation\u arrow}

但它不起作用。在本例中,您的图标将是“System.Windows.DataTemplate”字符串

DataTemplate
表示“它将为数据应用模板”。您没有图标的数据,因此它无法为此应用模板

您必须将具体项目添加为图标(如您所述)或为其创建样式:

<Style TargetType="MenuItem">
    <Setter Property="Icon">
        <Setter.Value>
            <DockPanel LastChildFill="True" HorizontalAlignment="Center" VerticalAlignment="Center">
                 <Grid>
                     <Canvas>
                         <Rectangle Fill="Red" Width="30" Height="20"/>
                     </Canvas>
                 </Grid>
            </DockPanel>
        </Setter.Value>
    </Setter>
</Style>

但最奇特的方式是:


首先:您的绑定错误。必须将此键用作
{DynamicResource navigation\u arrow}
{StaticResource navigation\u arrow}

但它不起作用。在本例中,您的图标将是“System.Windows.DataTemplate”字符串

DataTemplate
表示“它将为数据应用模板”。您没有图标的数据,因此它无法为此应用模板

您必须将具体项目添加为图标(如您所述)或为其创建样式:

<Style TargetType="MenuItem">
    <Setter Property="Icon">
        <Setter.Value>
            <DockPanel LastChildFill="True" HorizontalAlignment="Center" VerticalAlignment="Center">
                 <Grid>
                     <Canvas>
                         <Rectangle Fill="Red" Width="30" Height="20"/>
                     </Canvas>
                 </Grid>
            </DockPanel>
        </Setter.Value>
    </Setter>
</Style>

但最奇特的方式是:

您可以使用ContentControl:


您可以使用ContentControl:



您的链接为空,显示信息:此主题不再可用更新-此主题在.NET 4.5的MSDN中缺失(我不知道为什么)您的链接为空,显示信息:此主题不再可用更新-此主题在.NET 4.5的MSDN中缺失(我不知道为什么)