如何防止WPF UserControl元素在所需的视图范围之外可见?

如何防止WPF UserControl元素在所需的视图范围之外可见?,wpf,user-controls,margin,Wpf,User Controls,Margin,我正在尝试将我的WPF应用程序转换为WPF用户控件。在最初的应用程序中,我特意修改了某些元素的边距,使其边距不在窗口的边界内。我这样做是为了隐藏不需要的边界,如果不编写自己的控件模板,就无法消除这些边界。这是一个简单的修复,但不幸的是,当我的应用程序被制作成一个UserControl时,这种技术不起作用。如果我将UserControl的宽度设置为与原始应用程序中的窗口相同的宽度,那么当我在测试应用程序中查看此UserControl时,想要隐藏其边框的元素现在完全可见 我不明白为什么会发生这种事。

我正在尝试将我的WPF应用程序转换为WPF用户控件。在最初的应用程序中,我特意修改了某些元素的边距,使其边距不在窗口的边界内。我这样做是为了隐藏不需要的边界,如果不编写自己的控件模板,就无法消除这些边界。这是一个简单的修复,但不幸的是,当我的应用程序被制作成一个UserControl时,这种技术不起作用。如果我将UserControl的宽度设置为与原始应用程序中的窗口相同的宽度,那么当我在测试应用程序中查看此UserControl时,想要隐藏其边框的元素现在完全可见

我不明白为什么会发生这种事。如果我将UserControl的宽度设置为某个宽度,那么UserControl的宽度应该等于width,对吗?如下图1所示,无论我将宽度设置为什么,UserControl的所有元素都是完全可见的。所需的视觉效果(我在原始应用程序中使用的视觉效果)如图2所示,其中元素被窗口的边界正确地切断

如何确保具有负边距的元素在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>