gpt4 book ai didi

选项卡后面的 WPF 和 Awesomium 控件不调整大小

转载 作者:行者123 更新时间:2023-12-02 02:13:25 43 4
gpt4 key购买 nike

我在 WPF 应用程序中有一个 TabControl。在其中一个选项卡中,我有一个 WebControl 类(来自 Awesomium.Net)。

当我在此选项卡处于事件状态时调整窗口大小时,浏览器也会调整大小。

当我在另一个选项卡处于事件状态时调整窗口大小时,浏览器不会调整大小。当我返回带有浏览器控件的选项卡时,该控件仍为旧大小。

我该如何解决这个问题?

我试图破解 TabControl.SelectionChanged 事件,但没有成功:

我的 xaml:

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyApp"
xmlns:Custom="http://schemas.awesomium.com/winfx"
x:Class="MyApp.MainWindow"
Title="MainWindow"
Height="350"
Width="525" >
<Grid>
<TabControl
SelectionChanged="Tabs_SelectionChanged">
<TabItem
Header="MyTab" Name="MyTab" >
<Grid>
<Custom:WebControl x:Name="browser" />
</Grid>
</TabItem>
<TabItem Header="Another tab">
<Grid>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>

还有我的代码:

private void Tabs_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var tabs = e.Source as TabControl;
if (tabs != null && tabs.SelectedItem == myTab)
{
var parent = browser.Parent as FrameworkElement;
parent.UpdateLayout();

// also tried
parent.InvalidateArrange();
// also tried
browser.InvalidateArrange();
// also tried
parent.Width -= 1;
parent.InvalidateArrange();
parent.Width += 1;

}
}

[编辑] 当我使用 WPFInspector 附加应用程序时,我可以看到 WebControl 本身实际上已调整大小。似乎是内部控件(哪个)未正确调整大小。

[编辑 2] 另一个不成功的测试:

    private static readonly System.Reflection.PropertyInfo g_WebControlIsDirtyProperty = typeof(WebControl).GetProperty("IsDirty");
private void Tabs_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var tabs = e.Source as TabControl;
if (tabs != null && tabs.SelectedItem == myTab)
{
g_WebControlIsDirtyProperty.SetValue(
browser,
true
);
}
}

[编辑 3] 我玩过 AvalonDock 2.0 .行为是相同的。

最佳答案

我想我遇到了同样的问题,当我最初加载 WebControl 时,我无法显示网站的实际内容,直到我手动重新调整 WebControl 的大小。尽管受到您的无效调用的启发,我确实设法找到了解决方法。 我在初始加载后调用了 browser.InvalidateMeasure() 。对于您的情况,我怀疑您需要将它放在 TabControl 的选择更改中。

关于选项卡后面的 WPF 和 Awesomium 控件不调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11724386/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com