C# 向上下文菜单添加控件
我有一个上下文菜单,我想添加一些控件也。在下面的示例中,我添加了一个文本框、复选框和一个滑块C# 向上下文菜单添加控件,c#,wpf,xaml,contextmenu,menuitem,C#,Wpf,Xaml,Contextmenu,Menuitem,我有一个上下文菜单,我想添加一些控件也。在下面的示例中,我添加了一个文本框、复选框和一个滑块 <ContextMenu> <MenuItem Header="Cut" Command="Cut" /> <MenuItem Header="Copy" Command="Copy" /> <MenuItem Header="Paste" C
<ContextMenu>
<MenuItem Header="Cut"
Command="Cut" />
<MenuItem Header="Copy"
Command="Copy" />
<MenuItem Header="Paste"
Command="Paste" />
<Separator />
<Border Background="#999"
BorderThickness="1"
BorderBrush="Black"
Padding="5">
<Grid Width="300">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Label Content="PropA"
Grid.Column="0"
Grid.Row="0" />
<Label Content="PropB"
Grid.Column="0"
Grid.Row="1" />
<Label Content="PropC"
Grid.Column="0"
Grid.Row="2" />
<TextBox Text="-10"
Grid.Column="2"
Grid.Row="0" />
<CheckBox Grid.Column="2"
Grid.Row="1" />
<Slider Grid.Column="2"
Grid.Row="2" />
</Grid>
</Border>
</ContextMenu>
其结果是:
有没有办法让这个看起来更好
我可以禁用菜单项周围的可选蓝色边框(显示为红色)吗
我可以拉伸控件以适应菜单吗
您的
边框
被包装在菜单项
中。您可以使用MenuItem
并移动Border
作为其模板
<ContextMenu>
<MenuItem Header="Cut" Command="Cut" />
<MenuItem Header="Copy" Command="Copy" />
<MenuItem Header="Paste" Command="Paste" />
<Separator />
<MenuItem>
<MenuItem.Template>
<ControlTemplate TargetType="{x:Type MenuItem}">
<Border Background="#999" BorderThickness="1" BorderBrush="Black" Padding="5">
<Grid Width="300">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Label Content="PropA" Grid.Column="0" Grid.Row="0" />
<Label Content="PropB" Grid.Column="0" Grid.Row="1" />
<Label Content="PropC" Grid.Column="0" Grid.Row="2" />
<TextBox Text="-10" Grid.Column="2" Grid.Row="0" />
<CheckBox Grid.Column="2" Grid.Row="1" />
<Slider Grid.Column="2" Grid.Row="2" />
</Grid>
</Border>
</ControlTemplate>
</MenuItem.Template>
</MenuItem>
</ContextMenu>