Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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
C# WPF工具栏和StackPanel将ClipToBounds=";“真的”;裁剪时自动_C#_Wpf_Toolbar - Fatal编程技术网

C# WPF工具栏和StackPanel将ClipToBounds=";“真的”;裁剪时自动

C# WPF工具栏和StackPanel将ClipToBounds=";“真的”;裁剪时自动,c#,wpf,toolbar,C#,Wpf,Toolbar,我需要在WPF中显示工具栏中超出其边界的一些子项(当光标悬停时,工具栏上的按钮会增长) 当ClipToBounds=“False”和所有按钮都位于工具栏内时,一切正常。当面板的一部分被窗口的边缘剪断,并且没有地方放置一些按钮时,就会发生故障。在这种情况下,工具栏和StackPanel会自动将ClipToBounds属性切换为“True”,并开始裁剪子项 我是否可以禁用此行为,或者除了在最上面的透明容器上绘制按钮外,没有其他方法?我的解决方案(只需将工具栏拆分为层): 您可以禁用面板的默认剪裁

我需要在WPF中显示工具栏中超出其边界的一些子项(当光标悬停时,工具栏上的按钮会增长)

当ClipToBounds=“False”和所有按钮都位于工具栏内时,一切正常。当面板的一部分被窗口的边缘剪断,并且没有地方放置一些按钮时,就会发生故障。在这种情况下,工具栏和StackPanel会自动将ClipToBounds属性切换为“True”,并开始裁剪子项

我是否可以禁用此行为,或者除了在最上面的透明容器上绘制按钮外,没有其他方法?

我的解决方案(只需将工具栏拆分为层):


您可以禁用面板的默认剪裁行为。但要做到这一点,您必须扩展现有面板之一或实现您自己的面板:

class NoClipStackPanel : StackPanel
{
    protected override Geometry GetLayoutClip(Size layoutSlotSize)
    {
        return null;
    }
}

检查以获取有关不同剪裁方法的更多详细信息。

不在窗口之外。听起来像是说窗口变成了边框,它将ClipToBounds切换为True。只需添加一个绑定,当它不在窗口的边界上时,该绑定会将其更改为false。你能发布XAML并描述它何时能交换更多吗?@MichaelPuckettII shure!我已经编辑了这篇文章。只要缩小窗口就可以看到面板内容的剪辑:哦,太棒了!非常感谢。
class NoClipStackPanel : StackPanel
{
    protected override Geometry GetLayoutClip(Size layoutSlotSize)
    {
        return null;
    }
}