Språk

FrameworkElement.UseLayoutRounding Egenskap

Definition

Hämtar eller anger ett värde som anger om layoutrundning ska tillämpas på elementets storlek och position under layouten.

public:
 property bool UseLayoutRounding { bool get(); void set(bool value); };
public bool UseLayoutRounding { get; set; }
member this.UseLayoutRounding : bool with get, set
Public Property UseLayoutRounding As Boolean

Egenskapsvärde

trueom layoutrundning tillämpas; annars . false Standardvärdet är false.

Exempel

I följande exempel visas den effekt som UseLayoutRounding egenskapen har på en linje med en bildpunktsbredd. Linjen till vänster använder inte layoutrundning och linjen till höger använder layoutrundning. Om du långsamt ändrar storlek på fönstret kan du se skillnaden som layoutrundning gör.

<Page x:Class="LayoutRounding.Lines"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Lines" Name="linesPage"
    >
  <StackPanel Width="150"  Margin="7" Orientation="Horizontal">
    <!-- Single pixel line with layout rounding turned OFF.-->
    <Rectangle UseLayoutRounding="False"
       Width="45.5" Margin="10" Height="1" Fill="Red"/>
    <!-- Single pixel line with layout rounding turned ON.-->
    <Rectangle UseLayoutRounding="True"
      Width="45.5" Margin="10" Height="1" Fill="Red"/>
  </StackPanel>
  <!-- Background Grid -->
  <Page.Background>
    <DrawingBrush  Viewport="0,0,10,10" ViewportUnits="Absolute" TileMode="Tile">
      <DrawingBrush.Drawing>
        <DrawingGroup>
          <GeometryDrawing Brush="White">
            <GeometryDrawing.Geometry>
              <RectangleGeometry Rect="0,0,1,1" />
            </GeometryDrawing.Geometry>
          </GeometryDrawing>
          <GeometryDrawing Geometry="M0,0 L1,0 1,0.1, 0,0.1Z " Brush="#CCCCFF" />
          <GeometryDrawing Geometry="M0,0 L0,1 0.1,1, 0.1,0Z" Brush="#CCCCFF" />
        </DrawingGroup>
      </DrawingBrush.Drawing>
    </DrawingBrush>
  </Page.Background>
</Page>

Kommentarer

UseLayoutRounding När egenskapen för ett element är trueavrundas alla icke-integrerade pixelvärden som beräknas under Measure och Arrange -passen till hela pixelvärden.

Den här egenskapen ärvs av underordnade element.

Note

Du bör ange UseLayoutRounding till true på rotelementet. Layoutsystemet lägger till underordnade koordinater till de överordnade koordinaterna. Därför, om de överordnade koordinaterna inte finns på en pixelgräns, är de underordnade koordinaterna inte heller på en pixelgräns. Om UseLayoutRounding det inte går att ange roten anger du SnapsToDevicePixels på det underordnade objektet för att få den effekt som du vill ha.

Ritade objekt på pixelgränser eliminerar de halvtransparenta kanter som skapas av aliasskydd när en kant faller mitt i en enhetspixel. Följande bild visar utdata från en linje med en bildpunktsbredd som hamnar mitt i en enhetspixel. Raden till vänster använder inte layoutrundning och är aliasskyddad. Raden till höger använder layoutrundning.

Kantutjämningslinje jämfört med en bildpunktslinje.

När du använder layoutrundning och Star storleksändring skapar layoutsystemet små variationer i kolumn- eller radmåtten för att undvika subpixelåtergivning. Om ett rutnät till exempel har en total bredd på 100 med 3 kolumner var och en av storlek Star, i stället för att skapa tre kolumner med samma bredd på 33,3, skapar layoutsystemet 2 kolumner med en bredd på 33 och en som har en bredd på 34.

Note

I .NET gjordes 4,6 ändringar i layoutrundning för att minska instanser av urklipp i kontroller med kantlinjer. Som standard är den här funktionen aktiverad om målramverket är .NET Framework 4.6 eller senare. Program som riktar in sig på tidigare versioner av ramverket kan välja det nya beteendet genom att lägga till följande inställning i en app.config-fil: <runtime><AppContextSwitchOverrides value="Switch.MS.Internal.DoNotApplyLayoutRoundingToMarginsAndBorderThickness=false"/></runtime> Inställningen börjar gälla endast när programmet körs på .NET Framework 4.6.

Gäller för