问题1:嵌套Winform控件(ZedGraph)在WPF的ScrollViewer控件上,出现滚动条,无论如何设置该Winform控件都在顶层,滚动滚动条会覆盖其他WPF控件。
解决办法:在ScrollViewer上嵌套一层ElementHost,其作用相当于将ScrollViewer整一层又包装成Winform。
<wfi:WindowsFormsHost><wfi:ElementHost><ScrollViewer /> </wfi:ElementHost></wfi:WindowsFormsHost>
如:
<UserControl x:Class="AnesMS.TakeManage.AnesPrintView"
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:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:zedgraph="clr-namespace:ZedGraph;assembly=ZedGraph"
xmlns:GraphCtrl="clr-namespace:DIH.ORIMS.GraphControl;assembly=DIH.ORIMS.GraphControl"
mc:Ignorable="d"
x:Name="UserControl"
d:DesignHeight="550" d:DesignWidth="1250">
<Grid Width="1024" Height="650">
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="*" />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<Label Content="打印预览" Style="{StaticResource PopBannerStyle}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
<wfi:WindowsFormsHost Grid.Row="1">
<wfi:ElementHost>
<ScrollViewer Grid.Row="1" Panel.ZIndex="0">
如:
<UserControl x:Class="AnesMS.TakeManage.AnesPrintView"
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:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:zedgraph="clr-namespace:ZedGraph;assembly=ZedGraph"
xmlns:GraphCtrl="clr-namespace:DIH.ORIMS.GraphControl;assembly=DIH.ORIMS.GraphControl"
mc:Ignorable="d"
x:Name="UserControl"
d:DesignHeight="550" d:DesignWidth="1250">
<Grid Width="1024" Height="650">
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="*" />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<Label Content="打印预览" Style="{StaticResource PopBannerStyle}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
<wfi:WindowsFormsHost Grid.Row="1">
<wfi:ElementHost>
<ScrollViewer Grid.Row="1" Panel.ZIndex="0">
<wfi:WindowsFormsHost x:Name="winFormPrint" Width="760" Height="1080" Panel.ZIndex="-1">
<GraphCtrl:GraphCtrl x:Name="graphCtrl" />
</wfi:WindowsFormsHost>
</ScrollViewer>
</wfi:ElementHost>
</wfi:WindowsFormsHost>
<StackPanel Orientation="Horizontal" Grid.Row="2">
<Button Command="{Binding CancelCommand}" Style="{StaticResource LightGreenButton}" Content="关闭" HorizontalAlignment="Right" Margin="0,0,20,0" Name="button1" VerticalAlignment="Bottom" Width="75" Grid.Row="1" Height="37" />
<Button IsEnabled="False" Content="打印" Height="37" HorizontalAlignment="Right" Margin="0,0,0,0" Name="button2" Style="{StaticResource LightGreenButton}" VerticalAlignment="Bottom" Width="75" Grid.Row="1" />
</StackPanel>
</Grid>
</UserControl>
<GraphCtrl:GraphCtrl x:Name="graphCtrl" />
</wfi:WindowsFormsHost>
</ScrollViewer>
</wfi:ElementHost>
</wfi:WindowsFormsHost>
<StackPanel Orientation="Horizontal" Grid.Row="2">
<Button Command="{Binding CancelCommand}" Style="{StaticResource LightGreenButton}" Content="关闭" HorizontalAlignment="Right" Margin="0,0,20,0" Name="button1" VerticalAlignment="Bottom" Width="75" Grid.Row="1" Height="37" />
<Button IsEnabled="False" Content="打印" Height="37" HorizontalAlignment="Right" Margin="0,0,0,0" Name="button2" Style="{StaticResource LightGreenButton}" VerticalAlignment="Bottom" Width="75" Grid.Row="1" />
</StackPanel>
</Grid>
</UserControl>