2

我有一个 wpf 应用程序,它托管一组控件,这些控件通过 FrameworkElementAdapter 由另一个进程支持。出于某种原因,这些控件存在非远程控件似乎没有表现出的裁剪/Z 顺序问题。
在此处输入图像描述

上图中的 gridview 是这些托管控件之一,并且不正确地与右侧的面板重叠,而托管它的 contentcontrol 则按预期运行。我已经明确设置ClipToBounds = true了gridview。

我的问题是:有没有办法让我的控件正确剪辑并遵守 z 顺序,或者 FrameworkElementAdapter 是否通过例如将它们渲染到装饰层或其他东西来使这成为不可能?

xml:

<Grid>
    <Viewbox>
        <ContentControl Content="{Binding VM.ErrorView}" Height="240" Width="425" Loaded="ContentControl_Loaded"/>
    </Viewbox>
</Grid>

C#:

public partial class ValidationView : UserControl
{
    public ValidationView()
    {
        InitializeComponent();
    }

    private void ContentControl_Loaded(object sender, RoutedEventArgs e)
    {
        var cc = (sender as ContentControl);
        var content = cc.Content as FrameworkElement;
        content.ClipToBounds = true;
    }
}

有趣的附注:如果我使用 Snoop 检查我的应用程序,当您将鼠标悬停在可视树图的某些部分上时,在预览 Snoop 显示中,远程控件根本不会出现,并且它们各自的主机内容控件显示为空,但大小合适

4

0 回答 0