0

我目前正在使用 WPF 和 C# 和 XAML 开发一个项目,我想出了这个问题:

我创建了一个新列(以前只有 2 个),并添加了一个 TabControl、TabItem 和一个堆栈面板,以使其与其他列相似。但是,当我调整它的大小时,它会与另一列重叠,即使最小宽度设置为 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>

这是 WebBrowser 重叠

4

2 回答 2

3

这与WebBrowser工作方式有关,它WindowsFormsHost也会影响控件。基本上,WebBrowser它不参与 WPF 的通常呈现流程,因此它不会像 WPF 控件那样合成到 WPF 窗口中。相反,它会在它占据的任何区域中的其他所有内容之后绘制,从而与应该出现在控件顶部的任何 WPF 控件重叠WebBrowser

不幸的是,这意味着您必须非常小心,不要让任何东西与WebBrowser控件重叠,因为您会遇到这种渲染问题。

于 2013-03-19T16:22:26.107 回答
1

首先,设置最小宽度不会阻止您的 ui 元素调整大小超过指定的最小宽度。也许您想设置最大宽度。

其次,网络浏览器是一个 IE 框架,而不是 wpf 本机控件,因此请期待它的怪异行为

于 2013-03-19T16:22:44.500 回答