Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从BitmapCache WinRT中提取图像_C#_Xaml_Tabs_Windows Runtime_Appbar - Fatal编程技术网

C# 从BitmapCache WinRT中提取图像

C# 从BitmapCache WinRT中提取图像,c#,xaml,tabs,windows-runtime,appbar,C#,Xaml,Tabs,Windows Runtime,Appbar,我有一个用于windows应用商店的应用程序,我需要使它模拟Internet Explorer之类的选项卡。问题是我只有一个控件,它不会同时加载到AppBar和主视图中 是否有方法在控件的构造函数中设置CacheMode,然后从BitmapCache中提取位图并将其加载到AppBar的选项卡视图中?还是我走错了方向。我不想使用两个不同的控件,因为这是一个黑客,我希望这是一个控制工作 我正在用C#和XAML编写这个应用程序 非常感谢您的帮助。在所有流行的XAML技术中,控件只能有一个父控件,因此您

我有一个用于windows应用商店的应用程序,我需要使它模拟Internet Explorer之类的选项卡。问题是我只有一个控件,它不会同时加载到AppBar和主视图中

是否有方法在控件的构造函数中设置CacheMode,然后从BitmapCache中提取位图并将其加载到AppBar的选项卡视图中?还是我走错了方向。我不想使用两个不同的控件,因为这是一个黑客,我希望这是一个控制工作

我正在用C#和XAML编写这个应用程序


非常感谢您的帮助。

在所有流行的XAML技术中,控件只能有一个父控件,因此您不能将其放在两个位置

您可以使用
RenderTargetBitmap
获取控件的屏幕截图,并将其放在布局中的其他位置,但这有很多问题

  • 它使用额外的内存来存储位图
  • 您需要确定何时拍摄该屏幕截图-通常是在加载所有图像后以及在每次布局或内容更新后
  • 位图不是交互式的

  • 您最好的选择可能是拥有同一控件的两个副本。您可以创建
    UserControl
    ,以封装任何功能和属性,并在多个位置轻松重用该控件。如果您通过URI引用图像-平台应自动共享多个控件中使用的图像的资源。

    为什么不能有两个控件实例显示相同的图像?系统将尝试为您缓存它(在某些情况下)。谢谢,这非常有帮助。我可能会使用RenderTargetBitmap,因为我想阻止创建两个用户控件。选项卡项不需要与之交互,它只是位于GridView项中。