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