C# WindowsFormsHost控件未显示在棱柱区域中
我正在这个链接上使用pdf查看器 它正确地显示在窗口中,一切都按预期进行。 但当我将视图添加到区域时,它不显示,视图中的其他用户组件显示正确,只有PdfViewer不显示 我准备了一个示例代码来概述这个场景 这是PdfViewer控制 这不起作用,其他组件显示,但Pdf控件不显示C# WindowsFormsHost控件未显示在棱柱区域中,c#,wpf,prism,windowsformshost,windowsformsintegration,C#,Wpf,Prism,Windowsformshost,Windowsformsintegration,我正在这个链接上使用pdf查看器 它正确地显示在窗口中,一切都按预期进行。 但当我将视图添加到区域时,它不显示,视图中的其他用户组件显示正确,只有PdfViewer不显示 我准备了一个示例代码来概述这个场景 这是PdfViewer控制 这不起作用,其他组件显示,但Pdf控件不显示 这无疑是臭名昭著的“空域问题”。WindowsFormsHost需要提供一个窗口来承载winforms控件。如果有锋利的边缘,分层将无法正常工作。谷歌搜索“windowsformshost空域问题”可以为您提供有关此
这无疑是臭名昭著的“空域问题”。WindowsFormsHost需要提供一个窗口来承载winforms控件。如果有锋利的边缘,分层将无法正常工作。谷歌搜索“windowsformshost空域问题”可以为您提供有关此问题的良好背景信息。您可能需要购买一个对WPF更友好并使用WPF渲染模型的PDF查看器控件。调试时在Visual Studio的输出窗口中是否看到任何错误?@dymanoid没有任何输出error@HansPassant谢谢你的回答。我已经购买了Telerik wpf组件,但RadPdfViewer没有按预期显示一些pdf文档。这个组件(WindowsFormsPdfHost)非常好,但我很失望与region@HansPassant这个答案很有价值。再次感谢。
<UserControl x:Class="Akbank.Treasury.Client.WPF.Controls.PdfViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Akbank.Treasury.Client.WPF.Controls"
mc:Ignorable="d"
Name="pdfControl"
d:DesignHeight="500"
d:DesignWidth="900">
<Grid>
<WindowsFormsHost x:Name="pdfHost">
<local:WinFormPdfHost>
</local:WinFormPdfHost>
</WindowsFormsHost>
</Grid>
</UserControl>
<UserControl x:Class="Treasury.Common.Views.Common.Document.DocumentView"
xmlns:TControls="clr-namespace:Akbank.Treasury.Client.WPF.Controls;assembly=Akbank.Treasury.Client.WPF.Controls"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008">
<StackPanel Orientation="Vertical">
<Label Content="some content" />
<TextBox Text="some content" />
<TControls:PdfViewer Width="500"
Height="500"
x:Name="pdfViewer" />
</StackPanel>
</UserControl>
Window window = new Window();
window.Content = myView;
window.Show();
RegionManager.AddToRegion("MainRegion", myView);