相关疑难解决方法(0)

是否有一种简单/内置的方法来获取XAML元素的精确副本(克隆)?

我需要使XAML区域可打印,因此制作此按钮处理程序:

private void Button_Click_Print(object sender, RoutedEventArgs e)
{
    Customer.PrintReport(PrintableArea);
}
Run Code Online (Sandbox Code Playgroud)

在PrintReport中,我将frameworkelement打包到其他元素中,以便以与屏幕上不同的方式打印它,如下所示:

public void PrintReport(FrameworkElement fwe)
{
    StackPanel sp = new StackPanel();
    sp.Children.Add(fwe);
    TextBlock tb = new TextBlock();
    tb.Text = "hello";
    sp.Children.Add(tb);

    PrintDialog dialog = new PrintDialog();
    if (dialog.ShowDialog() == true)
    { 
        dialog.PrintVisual(sp, "Print job"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

但上面给出了以下错误:

指定的元素已经是另一个元素的逻辑子元素.首先断开它.

有没有一种简单的方法来克隆FrameworkElement,以便我可以操作副本,打印它,然后忘记它,让XAML中的原始元素显示在屏幕上完好无损?

我想象的是这样的东西:

FrameworkElement fwe2 = FrameworkElement.Clone(fwe); //pseudo-code
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml clone

14
推荐指数
2
解决办法
8452
查看次数

标签 统计

c# ×1

clone ×1

wpf ×1

xaml ×1