2011-01-13 27 views
6

En mi ventana hay una pequeña línea negra. ¿Por qué?C# WPF - Línea negra en la ventana

Screenshot

<Window x:Class="WpfPortOfTestingCamera.InputSelection" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="InputSelection" WindowStartupLocation="CenterOwner" ResizeMode="NoResize" ShowInTaskbar="False" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" SizeToContent="WidthAndHeight" d:DesignWidth="280" d:DesignHeight="206"> 

     <StackPanel HorizontalAlignment="Center" Name="stackPanel1" VerticalAlignment="Top" Margin="10" MaxWidth="500"> 
      <GroupBox Header="Select Camera" HorizontalAlignment="Center" VerticalAlignment="Center"> 
       <ComboBox Height="23" Name="comboBox1" HorizontalAlignment="Center" VerticalAlignment="Center" MinWidth="120" /> 
      </GroupBox> 
      <Button Content="OK" Name="ButtonOK" IsDefault="True" Click="ButtonOK_Click" /> 
     </StackPanel> 
</Window> 

Respuesta

9

Parece ser un artefacto de representación que se produce cuando se cambia el tamaño de la ventana a la anchura de su cuadro combinado cuando se establece la cadena de contenido.

Si agrega el atributo SnapsToDevicePixels = "True" a la etiqueta de ventana, la línea negra desaparece.

+0

¿Hay alguna desventaja de usar SnapsToDevicePixels = "True"? – Hooch

+0

En realidad, no lo sé, pero sospecho que el rendimiento podría verse afectado de alguna manera. –

+0

El inconveniente es que si solo coloca SnapToDevicePixels en algunos de sus Nodos de árbol visual, otros aún se pueden representar en posición subpíxel. Esto arruinará las alineaciones de los objetos entre sí. Escribí una publicación sobre pasar esto usando UseLayoutRounding: http://net-fx.blogspot.com/2011/04/getting-crisp-back-into-your-wpf-apps.html ... HTH –