2012-04-09 9 views
3

                enter image description hereWarum ist der Rand von WPF Border im Entwurfsmodus sichtbar, aber nicht in der Anwendung?

Der Designer zeigt einen schwarzen Rand um den roten Hintergrund, aber die tatsächliche Anwendung zeigt nur den roten Hintergrund. Was gibt? Wie erzwinge ich, dass der schwarze Rand sichtbar ist?

Hier ist das XAML für dieses Fenster:

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     MinWidth="400" MinHeight="300" 
     TextOptions.TextFormattingMode="Display"> 
    <DockPanel Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> 
     <Button DockPanel.Dock="Top" Content="A button" 
       Padding="8,2" Margin="8" /> 
     <Border DockPanel.Dock="Top" Height="10" BorderBrush="Black" 
       SnapsToDevicePixels="True" Background="Red" /> 
     <Button DockPanel.Dock="Top" Content="A button" 
       Padding="8,2" Margin="8" /> 
    </DockPanel> 
</Window> 
+1

+1 für Screenshot – Alain

+0

Ist das die Grenze, oder ist es nur eine Linie um die Kontrolle, so dass Sie etwas auf der Designoberfläche haben können? –

+0

@TonyHopkinson Für einen Moment dort dachte ich, du hättest gerade erklärt, was passiert ist, aber eigentlich ... nein, das ist die Grenze: http://i.imgur.com/ilQb0.png –

Antwort

3

Meine Vermutung ist, dass die Standard-Dicke der Grenze während der Laufzeit ist 0 - möglicherweise aufgrund einer vererbten Stil in der Anwendung Ressourcenverzeichnis. Standardstile, die von einem globalen Ressourcenwörterbuch geerbt wurden, werden häufig während der Entwurfszeit nicht angezeigt.

ausdrücklich Versuchen Sie, die ich bin mir nicht sicher BorderThickness="1"

+1

Dies passiert sogar in einem leeren Projekt ... denke, es ist eine andere WPF-Sache, die ich ertragen muss ... :) –

+1

Als WPF UI-Entwickler habe ich den Designer komplett aufgegeben und mich darauf verlassen ganz im Kopf und [SNOOP] (http://snoopwpf.codeplex.com/). – Alain

3

Einstellung, warum die Grenze im Design-Modus zeichnet sich ab, aber man kann es durch Zugabe einer expliziten Dicke

<Border DockPanel.Dock="Top" Height="10" BorderBrush="Black" 
     SnapsToDevicePixels="True" Background="Red" BorderThickness="1" /> 
+0

Snap to Device Pixel funktionierte für mich, ich denke, es war Rendering über einen halben Pixex verursacht meine Grenze die Hälfte der Sättigung. – apc

0
 <Border.BorderBrush> 
      <SolidColorBrush Color="{DynamicResource Gray4}"/> 
     </Border.BorderBrush> 
in der Anwendung zeigen, machen

Ersetzen Wert der Eigenschaft "Farbe", hex mit:

 <Border.BorderBrush> 
      <SolidColorBrush Color="#FFD33B3B"/> 
     </Border.BorderBrush> 
Verwandte Themen