修复ZOrder /剪切进程隔离(通过FrameworkElementAdapter)WPF控件

时间:2015-07-08 18:32:56

标签: c# wpf maf

我有一个wpf应用程序,它托管一组控件,这些控件由另一个进程通过FrameworkElementAdapter支持。出于某种原因,这些控件有一个剪辑/ Z顺序问题,非远程控件似乎没有表现出来 enter image description here

上图中的gridview是其中一个托管控件,并且右侧面板不正确地重叠,而托管它的contentcontrol的行为与预期一致。我已在gridview上明确设置了ClipToBounds = true

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

的Xaml:

<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显示中,远程控件根本不显示,并且它们各自的主机内容控件显示为空,但是正确的尺寸

0 个答案:

没有答案