2010-01-06 132 views
3

爲什麼Path和Polyline在WPF中有不同的渲染?爲什麼Path和Polyline在WPF中有不同的渲染?

發生這種情況無論是在代碼和交融,也許我失去了一些東西或者這個 只是一個抗鋸齒效果。從混合

<Window 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
x:Class="GeometryMonky.Window1" 
x:Name="Window" 
Title="Window1" 
Width="640" Height="480" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> 

<Grid x:Name="LayoutRoot"> 
    <Path Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF0000FF" Margin="100,10,0,0" Data="M289,39 L333,173" Width="1" HorizontalAlignment="Left" Height="100" StrokeThickness="1"/> 

    <Polyline Stroke="#FF0000FF" Margin="115,178,417,168" StrokeThickness="1" Width="100" Height="100"> 
    <Polyline.Points> 
    <Point>10,0</Point> 
    <Point>10,100</Point> 
    </Polyline.Points> 
    </Polyline> 
</Grid> 
</Window> 

圖像樣本: http://img190.imageshack.us/img190/2965/wpfsmaple.png

開發系統: WinXP SP2上VS 2008 + SP1

+1

折線具有StrokeThickness和寬度設置,我想看到的XAML的其餘部分。 – 2010-01-06 15:51:32

+0

也許一個有用的鏈接「WPF中的模糊圖像」:http://www.nbdtech.com/blog/archive/2008/11/20/blurred-images-in-wpf.aspx – bmustata 2010-01-07 07:55:48

回答

3

它與非文本對象的繪圖模式來做。我嘗試設置折線對象,就像下面鏈接的文章所說,它確實使它看起來就像路徑一樣。

所以,簡單的答案是它與抗鋸齒做。下面是文章:Single Pixel Lines

如果你想命令在這兒,給你的折線的名稱,然後添加以下代碼後面。

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     this.InitializeComponent(); 
     // THIS IS THE LINE THATS IMPORTANT 
     pLine.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased); 
    } 
} 

XAML中改變位置:

<Polyline x:Name="pLine" Stroke="#FF0000FF" Margin="115,178,417,168" StrokeThickness="1" Width="100" Height="100"> 
    <Polyline.Points> 
    <Point>10,0</Point> 
    <Point>10,100</Point> 
    </Polyline.Points> 
</Polyline> 

這會讓你的折線對象看起來就像你的Path對象。但是,將路徑更改爲未指定使用不會執行任何操作,因此您可以使其他對象看起來類似於路徑,但反之亦然。

2

在路徑或折線XAML標記將這個

RenderOptions.EdgeMode="Aliased" 
相關問題