2011-10-03 6 views
2

Je rencontre un problème plutôt étrange avec WPF. Lorsque je place des boutons sur un formulaire, ils ont l'air bien dans le temps de conception, ils ont l'air bien sur Windows XP mais lorsque l'application est exécutée sur Windows 7, les bords se brisent.WPF Bords cassés

Voici une capture d'écran des icônes normales (XP et le temps de conception) Normal Edges

Et voici un avec les bords cassés (Windows 7) Broken Edges

Toutes les idées?

EDIT:

Comme l'a demandé ici le code que je l'utilise pour le bouton

<Button Height="38" HorizontalAlignment="Center" Name="cmdChange_dataset" VerticalAlignment="Center" Width="130" Grid.Column="0" > 
       <Grid Width="120"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="auto"/> 
         <ColumnDefinition Width="*"/> 

        </Grid.ColumnDefinitions> 
        <Image Source="/Sales_express_lite_WPF;component/Images/note_to_self_32.png" Stretch="None" Grid.Column="0" HorizontalAlignment="Left"/> 
        <Label Content="Change DataSet" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"/> 
       </Grid> 
       <Button.Effect> 
        <DropShadowEffect BlurRadius="5" Color="Gray" /> 
       </Button.Effect> 
      </Button> 
+4

Pouvez-vous publier le code XAML de votre Button? – Rachel

+0

@Rachel Échantillon de code ajouté au message original, en y réfléchissant J'aurais dû le poster en premier lieu –

+0

Peut-être est-ce lié à cela? http://blogs.msdn.com/b/text/archive/2009/08/27/layout-rounding.aspx –

Répondre

1

Peut-être est lié à cela? Layout Rounding on the WPF Text Blog

Résumé du poste de blog:

moteur de mise en page de WPF donne fréquemment des éléments des positions sous-pixels. Les algorithmes anti-crénelage provoquent le rendu de ces éléments positionnés sur des pixels multiples après le filtrage. Cela peut entraîner des lignes floues et d'autres artefacts de rendu non souhaitables. L'arrondi de mise en page a été introduit dans WPF 4.0 pour permettre aux développeurs de forcer le système de mise en page WPF à positionner les éléments sur les limites des pixels, éliminant ainsi nombre des effets secondaires négatifs du positionnement des sous-pixels.

La propriété attachéeUseLayoutRoundinga été introduit pour permettre la fonctionnalité de mise en page d'arrondi à basculée ou désactiver. Cette propriété peut être True ou False. La valeur de cette propriété est héritée par les enfants d'un élément.

<Grid UseLayoutRounding="True" Height="100" Width="200"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Rectangle Grid.Row="0" Fill="DarkBlue"/> 
    <Rectangle Grid.Row="1" Fill="DarkBlue"/> 
    <Rectangle Grid.Row="2" Fill="DarkBlue"/> 
</Grid> 
+1

Pouvez-vous résumer le blog ici - il aide dans le cas où l'URL change. – ChrisF