2010-11-12 5 views
3

Après la publication de mon application XBAP, il me manque tous (ou certains) TextBlocks. Il ressemble à ceci:XBAP: Textes manquants dans la version publiée

strange "feature"

Les boutons doivent être étiquetés, il devrait y avoir différents TextBlocks sur tout l'écran principal.

Pour rendre les choses plus étranges:

  • Cette application fonctionne parfaitement lors du débogage.
  • Tous les textes ne sont pas toujours manquants, certains sont là de temps à temps.
  • J'ai implémenté un LayoutTransform changeant pour le reziser avec le navigateur d'hébergement . Sur certaines tailles, tous les textes (ou certains) sont soudainement là. (Avec une LayoutTransform fixe, il manque parfois des textes, aussi). Changer à un RenderTransform à la place ne change pas ce comportement. La suppression de la rezisation n'est pas non plus possible.
  • Il manque des textes dans un diagramme que je peins. Ils sont dessinés dans OnRender dans un contrôle personnalisé.
  • Ce comportement est uniquement visible sur certains ordinateurs. Je soupçonne que tous ont. NET 4.0 installé. Lors de la compilation pour .NET 4.0, tout va bien, mais depuis .NET 4.0 n'est pas encore largement installé, je préfère compiler pour .NET 3.5

Toutes les idées qui pourrait être à l'origine de cela? S'il vous plaît demander si vous avez besoin de plus d'informations! Merci!

Éditer: J'ai fait un petit projet pour reproduire le bogue. Vous pouvez le trouver publié here. Notez que ce bug semble concerner uniquement .NET 4.0.

A partir d'une application navigateur WPF, ceci est mon code dans 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> 

CodeBehind:

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);      
    } 
} 

Après avoir publié cela, le "Vanishing texte" ne peut être vu à un certain niveaux de zoom. Cela fonctionne très bien dans Debug.

Répondre

2

Cela semble être un bug dans la bêta IE9.0. Le retour à IE8.0 a résolu le problème.