WtF*_*dgE 5 c# browser wpf menu
我有一个带有菜单和滚动查看器的网格.在scrollviewer中,我有一个带有另一个网格的组框和一个webbrowser元素.
现在当我使我的窗口小于我的webbrowser内容的内容时出现问题,并在滚动查看器中向下滚动.一切都有一个边距,所以它保持在顶部菜单下面,但webbrowser元素没有,因此覆盖菜单.有办法解决这个问题吗?我无法弄清楚:边缘和垫子不起作用.我希望它周围的网格元素或其他东西可以解决问题,但没有任何作用.
编辑:
好吧我尝试添加xaml代码但请记住它非常庞大,所以这是极端的短版本:( webbrowser元素位于代码的底部)
<Window x:Class="Cleaning_Masters_Official.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Cleaning Masters Offerte Packet - nieuw.off" Name="Main" Width="{DynamicResource {x:Static SystemParameters.MaximizedPrimaryScreenWidthKey}}"
Icon="bin\Debug\Images\Main.ico"
Height="{DynamicResource {x:Static SystemParameters.MaximizedPrimaryScreenHeightKey}}" Closing="Main_Closing"
WindowStartupLocation="CenterScreen" WindowStyle="SingleBorderWindow" WindowState="Maximized">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="22" />
<RowDefinition Height="*" />
<RowDefinition Name="rowbar" Height="0" />
</Grid.RowDefinitions>
<ScrollViewer Margin="10" Grid.Row="1">
<TabControl Name="tabChapters">
<TabItem Header="Algemeen" Name="tabGeneral">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GroupBox Header="Configureer hoofdstukken:" Margin="10" Padding="10">
<Grid>
...
</Grid>
</GroupBox>
<GroupBox Header="Voorpagina Afbeeldingen:" Margin="10,0,10,10" Padding="10" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2">
<Grid VerticalAlignment="Top">
...
</Grid>
</GroupBox>
<GroupBox Header="Offerte Info:" Margin="10,10,10,10" Padding="10" Grid.Column="1" Grid.Row="0">
<Grid>
...
</Grid>
</GroupBox>
<GroupBox Margin="0,10,10,10" Header="Inhoudstafel:" Grid.Column="2" Grid.RowSpan="2">
<Grid>
<WebBrowser Margin="10" Name="wbInhoudstafel"/>
</Grid>
</GroupBox>
</Grid>
</TabItem>
<TabItem Header="1. Voorwoord" Name="tabVoorwoord">
</TabItem>
...
</TabItem>
</TabControl>
</ScrollViewer>
<Menu DockPanel.Dock="Top" Name="TopMenu">
...
</Menu>
<StatusBar Name="sbar" Grid.Row="2"
...
</StatusBar>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
WPF WebBrowser 控件基本上是旧的 Win32 Webbrowser 控件,并且从技术上讲是在 WPF 内容之上呈现的。此外,它在尺寸计算方面存在一些严重问题。
请参阅 http://msdn.microsoft.com/en-us/library/aa970688(v=vs.85).aspx
恐怕没有办法告诉 Web 浏览器控件更改该行为。
但还有其他控制措施:
http://wpfchromium.codeplex.com/
编辑:
在 SO 上找到了一个很好的总结,其中指出了一些替代方案:
WPF WebBrowser (3.5 SP1) Always on top - 在 WPF 中显示 HTML 的其他建议