我正在使用第三方工具(AxInterop.EDOfficeLib dll)来显示WPF用户控件中的Excel工作表。通过使用此工作表,用户可以创建自定义报告。
以下是我的XAML:
<DockPanel Margin="0,0,0,0" LastChildFill="False" Name="PanelCustomeReport">
<StackPanel>
<Grid Background="{DynamicResource OMSToolBarBlueGradientBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Row="0" Grid.Column="0">
<WindowsFormsHost>
<edrawOffViewer:AxEDOffice x:Name="framer" NotifyCtrlReady="framer_NotifyCtrlReady"/>
</WindowsFormsHost>
</ScrollViewer>
</Grid>
</StackPanel>
</DockPanel>
问题:
当我在运行模式WindowsFormHost
中调整表单大小时,控件不会相应地设置其高度和宽度。
有关更清晰的视图,请参阅快照:
正如您在快照中看到的那样,绿线是网格的结尾,但windowformhost
超过了红线。我如何才能在网格中限制它。
如果需要更多信息,请告诉我。我会尝试提供它。
答案 0 :(得分:0)
你可以在这里使用ViewBox,它可以帮助你。
<Viewbox>
<DockPanel Margin="0,0,0,0" LastChildFill="False" Name="PanelCustomeReport">
<StackPanel>
<Grid Background="{DynamicResource OMSToolBarBlueGradientBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Row="0" Grid.Column="0">
<WindowsFormsHost>
<edrawOffViewer:AxEDOffice x:Name="framer" NotifyCtrlReady="framer_NotifyCtrlReady"/>
</WindowsFormsHost>
</ScrollViewer>
</Grid>
</StackPanel>
</DockPanel>
</Viewbox>