WPF-Border-Objekt Border CornerRadius verschiedenen von der Grenze Hintergrund CornerRadius

Habe ich zwei leisten übereinander. Mit einem BorderThickness aber kein hintergrund, der andere ohne Rahmen Dicke, aber mit einem hintergrund. Beide Ränder haben eine CornerRadius 3. Das problem ist, dass die Ecke der Hintergrund von einem die Grenzen auf, die Stöcke hinter der Ecke an die andere Grenze.

WPF-Border-Objekt Border CornerRadius verschiedenen von der Grenze Hintergrund CornerRadius

Hier ist das XAML mit dem ersten border-element mit dem hintergrund und der Grenze benannt FocusVisual dass die BorderThickness.

<Grid x:Name="grid">
    <Border Background="{TemplateBinding Background}"  
            CornerRadius="3">
        <Grid>
            <Border x:Name="MouseOverVisual" 
                Opacity="0"
                Background="{StaticResource NuiFieldHoverBrush}"
                CornerRadius="3" />
            <Border>
                <Grid>
                    <ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                    <ContentPresenter x:Name="PART_WatermarkHost" 
                          Content="{TemplateBinding Watermark}"
                          ContentTemplate="{TemplateBinding WatermarkTemplate}"
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                          IsHitTestVisible="False"
                          Margin="{TemplateBinding Padding}"
                          Visibility="Collapsed"/>
                </Grid>
            </Border>
        </Grid>
    </Border>
    <Border x:Name="FocusVisual" 
            Opacity="0" 
            BorderThickness="{TemplateBinding BorderThickness}"
            BorderBrush="{StaticResource NuiFocusBrush}" 
            CornerRadius="3" />
</Grid>

CornerRadius eine unterschiedliche Wirkung auf den Hintergrund und die Grenze von einem Border-Objekt scheint wie ein bug in WPF.

Ich könnte hinzufügen, ein BorderThickness an der Grenze mit dem Hintergrund und legen Sie die BorderBrush die Hintergrundfarbe, aber dies bewirkt, dass die untergeordneten Elemente, die Grenze geschoben werden, in der BorderThickness. Kann ich wohl um diese Neuanordnung von Elementen, aber es ist irgendwie ein Schmerz, so dachte ich, ich würde sehen, wenn jemand hat eine bessere Lösung.

  • Haben Sie versucht, entfernen Sie den Raster-element eingeschlossen innerhalb der ersten Grenze, um zu sehen, ob das einen Unterschied macht?
  • Versuchen Sie es mit Peter von Blois' snoop auf snoopwpf.codeplex.com, um zu überprüfen, dass jede Grenze hat die gleiche ActualWidth und ActualHeight, dass es keine implizite Ränder oder Polsterung messing, Dinge, etc.
InformationsquelleAutor Hank | 2011-08-10
Schreibe einen Kommentar