2012-01-30 6 views
0

XAML 아래를 보면 두 개의 직사각형이 만들어집니다.WPF 다각형의 경계 획을 어떻게 만드나요?

XAML

<Grid> 
    <Rectangle Height="80" Width="300" Fill="Maroon" 
     HorizontalAlignment="Center" VerticalAlignment="Bottom"> 
    </Rectangle> 
    <Rectangle Height="300" Width="50" Fill="LightSteelBlue" 
     HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="50,0"> 
    </Rectangle> 
    <Polygon Fill="LightSteelBlue" Stroke="LightSteelBlue" 
     HorizontalAlignment="Center" VerticalAlignment="Bottom"> 
     <Polygon.Points> 
      <Point X="0" Y="300"/> 
      <Point X="50" Y="300"/> 
      <Point X="50" Y="0"/> 
      <Point X="0" Y="0"/> 
      <Point X="0" Y="300"/> 
     </Polygon.Points> 
    </Polygon> 
</Grid> 

다각형 고체 아닌 테두리, 즉 당신이 앤티 앨리어싱 가장자리 표시되는 이미지를 확대 할 때 그린된다. 당신이 사각형을 그립니다 흥미롭게 때 (오른쪽에서 왼쪽으로, 다각형 사각형)이 얻지 않는다 : 고체/깨끗한 가장자리 다각형을 그릴 수있는 방법

Image http://www.barramsoft.com/pub/images/BarBorders2.png

있습니까?

답변

1

설정 두께 :

StrokeThickness는 = 또한 "5"

당신이 장치 픽셀에 스냅해야 할 수 있습니다

SnapsToDevicePixels = "True"로

1

표시되는 반투명는 아니다 비 - 딱딱한 경계선이나 경계선이 충분히 두껍지 않지만 앤티 앨리어스에 의해 발생합니다.

: 당신이 use Guidelines

또 다른 방법은 '수정'는 픽셀의 중간에 라인을 넣어 것입니다이다에 가지게됩니다

는 사각형으로이 문제를 해결하지 않을 것이다 SnapsToDevicePixels="True"을 설정하면 그리기 개체입니다

 <Polygon.Points> 
      <Point X="0.5" 
        Y="300.5" /> 
      <Point X="50.5" 
        Y="300.5" /> 
      <Point X="50.5" 
        Y="0.5" /> 
      <Point X="0.5" 
        Y="0.5" /> 
      <Point X="0.5" 
        Y="300.5" /> 
     </Polygon.Points> 

좌표가 이와 같이 주어지면 켜는 픽셀을 결정하는 것이 더 쉽습니다. 좌표가 두 개 (또는 그 이상) 픽셀 사이에 있으면 WPF는 모두 색상을 지정합니다.

4

이것은 오래된 질문이지만, 누군가가 구글에서이시 기회에 일어나는 경우에, 여기에 나를 위해 일한 솔루션입니다 :

이 다각형에 RenderOptions.EdgeMode = "별칭을"추가

<Polygon ... 
     RenderOptions.EdgeMode="Aliased"> 
    <Polygon.Points> 
     ... 
    </Polygon.Points> 
</Polygon> 

여기에 MSDN Documentation입니다.