WPF,关于ContextMenu

货郎大叔 2017-12-12 07:22:45

<Grid Name="grid">
<Button Name="button1" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="62,82,0,0">
<Button.ContextMenu>
<ContextMenu Name="contextmenu">
<MenuItem Header="张三" Click="MenuItem_Click"/>
<Border Background="Red" Height="3"/>
<MenuItem Header="李四"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
</Grid>



在上面的代码中,为什么红色背景的Border没有出现,而且鼠标以上去还有个蓝色框框,这是什么?
...全文
182 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuowp 2017-12-14
  • 打赏
  • 举报
回复
        <Button.ContextMenu>
<ContextMenu Name="contextmenu">
<MenuItem Header="张三" Click="MenuItem_Click"/>
<Border Background="Red" Height="3"/>
<MenuItem Header="李四"/>
</ContextMenu>
</Button.ContextMenu>

这种写法其实和
                <ContextMenu Name="contextmenu">
<MenuItem Header="张三" />
<MenuItem>
<MenuItem.Header>
<Border Background="Red" Height="3"/>
</MenuItem.Header>
</MenuItem>
<MenuItem Header="李四"/>
</ContextMenu>

没有任何区别,也就是说你放到MenuItemCollection集合中的元素会被自动封装成MenuItem,
如果你只是想分割一下两个MenuItem,建议用Separator
        <Button Name="button1" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="62,82,0,0">
<Button.ContextMenu>
<ContextMenu Name="contextmenu">
<MenuItem Header="张三" />
<Separator Foreground="Red" Background="Red" BorderBrush="Red">
<Separator.Template>
<ControlTemplate TargetType="{x:Type Separator}">
<Line Stretch="Fill" X2="1" Stroke="Red"
StrokeThickness="3"
StrokeStartLineCap="Square"
StrokeEndLineCap="Square"/>
</ControlTemplate>
</Separator.Template>
</Separator>
<MenuItem Header="李四"/>
</ContextMenu>
</Button.ContextMenu>
</Button>


exception92 2017-12-14
  • 打赏
  • 举报
回复
引用 2 楼 sr32r345 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 表示这里没有出现那种情况。
你那边能看到红色Border?咦,我这边怎么就没有呢[/quote] 红色的就是border,只不过没有高度。看看你那边是否有全局的某些style影响了或者显示设置border 大小试试。
货郎大叔 2017-12-14
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
表示这里没有出现那种情况。



你那边能看到红色Border?咦,我这边怎么就没有呢
exception92 2017-12-13
  • 打赏
  • 举报
回复
表示这里没有出现那种情况。


鼠标以上去还有个蓝色框框
-》这是默认的样式,想改变样式要重写它的template。

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧