如何从选单中删除边框?

问题描述

我已经使用mutil menuitem创建了代码,但是无法删除边框。

Link Image

如何删除菜单项边框WPF?

在下面编写MainWindow.xaml代码

<Window x:Class="TestMutilColumnMenu.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TestMutilColumnMenu"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style x:Key="MenuItem1" targettype="{x:Type MenuItem}">
            <Setter Property="BorderBrush"  Value="DarkGray"/>
            <Setter Property="Margin"  Value="1,1,1"/>
        </Style>
    </Window.Resources>
    <Menu>
        <MenuItem x:Name="tesst" Header="nane" >
            <MenuItem.ItemsPanel>
                <ItemsPanelTemplate>
                    <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                        <Grid.ColumnDeFinitions>
                            <ColumnDeFinition/>
                            <ColumnDeFinition/>
                            <ColumnDeFinition/>
                        </Grid.ColumnDeFinitions>
                        <Grid.RowDeFinitions>
                            <RowDeFinition/>
                            <RowDeFinition/>
                            <RowDeFinition/>
                            <RowDeFinition/>
                        </Grid.RowDeFinitions>
                    </Grid>
                </ItemsPanelTemplate>
            </MenuItem.ItemsPanel>
            <MenuItem Grid.Row="0" Grid.Column="0"  Header="Item 1" Style="{StaticResource  MenuItem1}">
                <MenuItem.Icon>
                    <Image Source="/res/Image.png"/>
                </MenuItem.Icon>
            </MenuItem>
            <MenuItem  Grid.Row="1" Grid.Column="0" Header="Item 2" Style="{StaticResource  MenuItem1}">
                <MenuItem.Icon>
                    <Image Source="/res/Image.png"/>
                </MenuItem.Icon>
            </MenuItem>
            <MenuItem Grid.Row="2" Grid.Column="0" Header="Item 3" Style="{StaticResource  MenuItem1}"></MenuItem>
            <MenuItem Grid.Row="3" Grid.Column="0" Header="Item 4" Style="{StaticResource  MenuItem1}"></MenuItem>
            <MenuItem Grid.Row="0" Grid.Column="1" Header="Item 5" Style="{StaticResource  MenuItem1}">
                <MenuItem.Icon>
                    <Image Source="/res/Image.png"/>
                </MenuItem.Icon>
            </MenuItem>
            <MenuItem Grid.Row="1" Grid.Column="1" Header="Item 6" Style="{StaticResource  MenuItem1}">
                <MenuItem.Icon>
                    <Image Source="/res/Image.png"/>
                </MenuItem.Icon>
            </MenuItem>
            <MenuItem Grid.Row="2" Grid.Column="1" Header="Item 7" Style="{StaticResource  MenuItem1}">
                <MenuItem.Icon>
                    <Image Source="/res/Image.png"/>
                </MenuItem.Icon>
            </MenuItem>
            <MenuItem Grid.Row="3" Grid.Column="1" Header="Item 8" Style="{StaticResource  MenuItem1}"></MenuItem>
            <MenuItem Grid.Row="0" Grid.Column="2" Header="Item 9" Style="{StaticResource  MenuItem1}"></MenuItem>
            <MenuItem Grid.Row="1" Grid.Column="2" Header="Item 10" Style="{StaticResource  MenuItem1}"></MenuItem>
        </MenuItem>
    </Menu>
</Window>

解决方法

为根ControlTemplate定义一个自定义MenuItem。这是默认的,除了Width的{​​{1}}从Rectange更改为1

0
,

在右键单击子菜单时可见。我想删除边框ContexMenu,但不删除。请帮忙

Link Image

下面的代码

5.2.1.2