WPF工具栏:如何去除握把和溢出

7 浏览
0 Comments

WPF工具栏:如何去除握把和溢出

在一个嵌套的WPF ToolBarPanel-ToolBar-Menu中,我们希望去掉左边的抓手和右边的溢出区域。虽然它们都显示为灰色,但我们希望它们根本不显示出来。有什么办法可以实现这个目标吗?如果你看一下下面链接中图3的图片,你就能看到最底部的三个工具栏中,下拉菜单左边有一个抓手,右边最右边的按钮有一个溢出区域。

0
0 Comments

问题的出现原因:想要在WPF的ToolBar中移除grip和overflow。

解决方法:可以使用Blend来简单地覆盖ToolBarPanel、Menu或ToolBar的ControlTemplate。

1. 右键单击ToolBar并选择Edit Template;

2. 在Edit Template中选择Edit a Copy;

3. 建议将副本添加到资源字典中;

4. 点击确定。

现在您将编辑ToolBarPanel的控制模板,并且可以将grip和overflow的可见性设置为Collapsed。对于其他控件,可以重复此过程。这可能需要一些时间,但使用Blend并不是非常困难。

由于Blend2和VS2008在一起使用时会出现很多问题,所以不能让Blend接近VS代码。在VS2k8SP1推出之前,我们曾经非常频繁地使用Blend。实际上,我希望VS2k8中的WPF编辑器就是Blend,这样右键单击某个对象就能选择将其分组为“StackPanel”或“Border”。可惜微软希望它们成为不同的体验。

我认为新的XAML Power Toys可能添加了一项允许对控件进行分组的功能。(也可能是MoXAML Power Toys...)

0
0 Comments

问题出现的原因是想要移除WPF工具栏(ToolBar)的手柄(grip)和溢出(overflow)功能。解决方法是通过更改ToolBar的右边距和左边距来实现,同时添加ClipToBounds属性来裁剪超出面板区域的工具栏部分。

具体的解决方法如下所示:


    
        ...
    

通过将ToolBar的右边距设置为负值(同时也设置左边距为负值,以防止左边出现圆角而右边出现方角的情况),可以移除工具栏的溢出功能。然后,将ClipToBounds属性设置为True,可以裁剪超出面板区域的工具栏部分。这样就可以实现移除工具栏的手柄和溢出功能的效果。

0
0 Comments

WPF ToolBar:如何删除grip和overflow

问题的原因:想要在WPF的ToolBar中删除grip和overflow按钮。

解决方法:可以通过在ToolBar上设置附加属性ToolBarTray.IsLocked="True"来删除grip。要删除overflow按钮,需要在自定义的ControlTemplate中删除它。还可以在ToolBar的Loaded事件中隐藏按钮。无论选择哪种方法,还应该在ToolBar的菜单上设置附加属性ToolBar.OverflowMode="Never",以防止项目意外溢出到无法访问的区域。

代码示例:


    
        
            
            
        
    

private void ToolBar_Loaded(object sender, RoutedEventArgs e)
{
    ToolBar toolBar = sender as ToolBar;
    var overflowGrid = toolBar.Template.FindName("OverflowGrid", toolBar) as FrameworkElement;
    if (overflowGrid != null)
    {
        overflowGrid.Visibility = Visibility.Collapsed;
    }
    var mainPanelBorder = toolBar.Template.FindName("MainPanelBorder", toolBar) as FrameworkElement;
    if (mainPanelBorder != null)
    {
        mainPanelBorder.Margin = new Thickness();
    }
}

另外,ToolBar相比于简单的StackPanel加上按钮,提供了一些额外的功能,比如鼠标悬停效果和主题样式。可以使用简单的StackPanel并仍然获得ToolBar的样式。


此外,还发现可以直接在ToolBar的

0