gpt4 book ai didi

c# - XBAP:发布版本中缺少文本

转载 作者:行者123 更新时间:2023-11-30 17:20:24 26 4
gpt4 key购买 nike

发布我的 XBAP 应用程序后,我丢失了所有(或部分)TextBlock。它看起来像这样:

strange "feature"

按钮应该有标签,主屏幕上应该有各种文本 block 。

让事情变得更奇怪:

  • 此应用程序完美运行调试时。
  • 并非所有文本总是丢失,有些文本有时会出现时间。
  • 我实现了一个不断变化的 LayoutTransform 以重新调整托管浏览器。在某些尺寸上,所有(或一些)文本突然出现。(使用固定的 LayoutTransform,有时文本也会丢失)。更改为 RenderTransform 不会更改此行为。删除 rezising 也没有。
  • 我正在绘制的图表中的文本丢失了。他们被吸引进来自定义控件中的 OnRender。
  • 此行为仅在某些计算机上出现。我怀疑他们都安装了 .NET 4.0。为 .NET 4.0 编译时一切正常,但由于 .NET 4.0 尚未广泛安装,我宁愿为 .NET 3.5 编译

有什么可能导致这种情况的想法吗?请询问您是否需要更多信息!谢谢!

编辑:我做了一个小项目来重现这个错误。你可以找到它发布here .请注意,此错误似乎仅影响 .NET 4.0。

从 WPF 浏览器应用程序开始,这是我在 Page1.xaml 中的代码

<Page x:Class="BugDemo.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Grid x:Name="LayoutRoot">
<TextBlock FontSize="35" Text="Vanishing Text" />
<Grid.LayoutTransform>
<ScaleTransform />
</Grid.LayoutTransform>
</Grid>
</Page>

代码隐藏:

public partial class Page1 : Page
{
public Page1()
{
InitializeComponent();
this.Loaded += AppPage_Loaded;
}

public double Scale
{
get { return ((ScaleTransform)this.LayoutRoot.LayoutTransform).ScaleX; }
set
{
((ScaleTransform)this.LayoutRoot.LayoutTransform).ScaleX = value;
((ScaleTransform)this.LayoutRoot.LayoutTransform).ScaleY = value;
}
}

void AppPage_Loaded(object sender, RoutedEventArgs e)
{
App.Current.MainWindow.SizeChanged += (o, args) => UpdateScale();
UpdateScale();
}

private void UpdateScale()
{
double xscale = (App.Current.MainWindow.ActualWidth) / 300;
double yscale = (App.Current.MainWindow.ActualHeight) / 200;

Scale = Math.Min(xscale, yscale);
}
}

发布后,“消失的文本”只能在某些缩放级别看到。它在调试中运行良好。

最佳答案

这似乎是 IE9.0 beta 中的一个错误。回滚到 IE8.0 解决了这个问题。

关于c# - XBAP:发布版本中缺少文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4166114/

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