我目前正在使用WPF和C#以及XAML开展项目,我想出了这个问题:
我创建了一个新列(之前只有2个),并添加了TabControl,TabItem和Stack Panel,使其与其他列类似。但是,当我调整它的大小时,它会与另一列重叠,即使最小宽度设置为0(或1)。
<TabControl Name="tabSideBarHelp" Grid.Column="1" Grid.Row="0" Grid.RowSpan="4" Margin="8,4,4,4" Padding="4" MinWidth="100">
<TabItem Header="Help">
<StackPanel>
<WebBrowser Grid.Row="3" Height="93" HorizontalAlignment="Left" Name="webBrowser1" VerticalAlignment="Top" MinWidth="1" Grid.Column="1"/>
</StackPanel>
</TabItem>
答案 0 :(得分:3)
这与WebBrowser
的工作方式有关,也会影响WindowsFormsHost
控件。基本上,WebBrowser
不参与WPF通常的渲染流程,因此它不会像WPF控件一样被合成到WPF窗口中。相反,它会在它占据的任何区域中的所有其他区域之后被绘制,从而重叠应该出现在WebBrowser
控件之上的任何WPF控件。
不幸的是,这意味着你必须非常小心,不要让WebBrowser
控件重叠,因为你会遇到这种渲染问题。
答案 1 :(得分:1)
首先,设置min-width不会阻止你的ui元素在指定的最小宽度上面。也许你想设置最大宽度。
其次,Web浏览器是一个IE框架,而不是一个wpf原生控件,所以期待它的怪异行为