如何防止WPF UserControl元素在所需的视图范围之外可见?
我正在尝试将我的WPF应用程序转换为WPF用户控件。在最初的应用程序中,我特意修改了某些元素的边距,使其边距不在窗口的边界内。我这样做是为了隐藏不需要的边界,如果不编写自己的控件模板,就无法消除这些边界。这是一个简单的修复,但不幸的是,当我的应用程序被制作成一个UserControl时,这种技术不起作用。如果我将UserControl的宽度设置为与原始应用程序中的窗口相同的宽度,那么当我在测试应用程序中查看此UserControl时,想要隐藏其边框的元素现在完全可见 我不明白为什么会发生这种事。如果我将UserControl的宽度设置为某个宽度,那么UserControl的宽度应该等于width,对吗?如下图1所示,无论我将宽度设置为什么,UserControl的所有元素都是完全可见的。所需的视觉效果(我在原始应用程序中使用的视觉效果)如图2所示,其中元素被窗口的边界正确地切断 如何确保具有负边距的元素在UserControl中的显示方式符合我的要求?如果您能帮助我们完成这一任务,我们将不胜感激 非常感谢你如何防止WPF UserControl元素在所需的视图范围之外可见?,wpf,user-controls,margin,Wpf,User Controls,Margin,我正在尝试将我的WPF应用程序转换为WPF用户控件。在最初的应用程序中,我特意修改了某些元素的边距,使其边距不在窗口的边界内。我这样做是为了隐藏不需要的边界,如果不编写自己的控件模板,就无法消除这些边界。这是一个简单的修复,但不幸的是,当我的应用程序被制作成一个UserControl时,这种技术不起作用。如果我将UserControl的宽度设置为与原始应用程序中的窗口相同的宽度,那么当我在测试应用程序中查看此UserControl时,想要隐藏其边框的元素现在完全可见 我不明白为什么会发生这种事。
Dalal您是否尝试将UserControl中元素的
ClipToBounds
属性设置为True
?您是否尝试将UserControl中元素的ClipToBounds
属性设置为用户控件中的True
?,将容器的Clip
属性设置为用户控件的大小(宽度、高度),例如Grid
比如说,
<Window x:Class="TestClipping.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="Auto" Width="Auto">
<Grid SizeChanged="OnGridSizeChanged"
x:Name="myGrid">
</Grid>
</Window>
在用户控件内部,将容器的
Clip
属性,例如Grid
设置为用户控件的大小(宽度、高度)
比如说,
<Window x:Class="TestClipping.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="Auto" Width="Auto">
<Grid SizeChanged="OnGridSizeChanged"
x:Name="myGrid">
</Grid>
</Window>