亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決WPF繪制矢量圖形模糊的問(wèn)題

 更新時(shí)間:2022年06月28日 09:54:13   作者:天方  
這篇文章介紹了WPF繪制矢量圖形模糊問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

WPF默認(rèn)提供了抗鋸齒功能,通過(guò)向外擴(kuò)展的半透明邊緣來(lái)實(shí)現(xiàn)模糊化。由于WPF采用了設(shè)備無(wú)關(guān)單位,當(dāng)設(shè)備DPI大于系統(tǒng)DPI時(shí),可能會(huì)產(chǎn)生像素自動(dòng)擴(kuò)展問(wèn)題,這就導(dǎo)致線條自動(dòng)向外擴(kuò)展一個(gè)像素,并且與邊緣相鄰的線條顏色變成了半透明,如下圖所示:

這種特性在繪制細(xì)線條的時(shí)候會(huì)導(dǎo)致一些我們所不期望的結(jié)果:顏色變淡,線條模糊,線條變粗。很多時(shí)候,我們是無(wú)法繪制一個(gè)像素的清晰的線條的。對(duì)于這個(gè)問(wèn)題,WPF給我們提供了幾種解決方案:

1、設(shè)置像素對(duì)齊

對(duì)于系統(tǒng)內(nèi)置的一些控件,通過(guò)設(shè)置SnapsToDevicePixels為true,可以非常方便的實(shí)現(xiàn)像素對(duì)齊。

這個(gè)屬性是有繼承效果的,只要在父控件上設(shè)置了,其所有的子控件都是生效的。但它有時(shí)會(huì)出現(xiàn)改變窗口大小時(shí)線條消失的情況

2、設(shè)置對(duì)齊參考線

方法1只針對(duì)系統(tǒng)的內(nèi)置的一些控件有效,但對(duì)于使用DrawingVisual等方式自繪的圖形則沒(méi)有效果。此時(shí)可以通過(guò)設(shè)置參考線解決這一問(wèn)題。

簡(jiǎn)單的示例如下:

void render(DrawingContext dc)
{
    var pen = new Pen(Brushes.Black, 1);
    var d = pen.Thickness / 2;

    var guidelines = new GuidelineSet(new []ublnpf9mb, new[]ublnpf9mb);
    dc.PushGuidelineSet(guidelines);

    dc.DrawLine(pen, new Point(30, 10), new Point(30, 80));
    dc.DrawLine(pen, new Point(50, 20), new Point(50, 80));
}

具體代碼參見(jiàn)MSDN:Apply a GuidelineSet to a Drawing,也可以參看這篇文章WPF DrawingContext seems ignore SnapToDevicePixels

3、設(shè)置 RenderOptions.EdgeMode="Aliased"

前面的設(shè)置參考線方式效果較好,不過(guò)需要編寫較多的代碼,并且只能適用于水平或垂直的線條。很多時(shí)候,我使用的是設(shè)置 RenderOptions.EdgeMode="Aliased"(如果在代碼中則是使用this.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased)

4、設(shè)置UseLayoutRounding="True"

這個(gè)是在WPF4后增加的一個(gè)選項(xiàng),用來(lái)控制布局舍入的,用來(lái)控制圖片模糊的效果非常好,用于控制控件的模糊效果也不錯(cuò)的。不過(guò)也是對(duì)DrawingContext繪制的圖形沒(méi)有效果的。

小結(jié):WPF的抗鋸齒效果在給我們帶來(lái)的很好的視覺(jué)效果的同時(shí),也給我們帶來(lái)的不少困擾,本文就總結(jié)了幾種常見(jiàn)的解決方案,希望能對(duì)大家的工作帶來(lái)一點(diǎn)幫助。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解析C#彩色圖像灰度化算法的實(shí)現(xiàn)代碼詳解

    解析C#彩色圖像灰度化算法的實(shí)現(xiàn)代碼詳解

    本篇文章是對(duì)C#中彩色圖像灰度化算法的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#中的is和as操作符區(qū)別小結(jié)

    C#中的is和as操作符區(qū)別小結(jié)

    這篇文章主要介紹了C#中的is和as操作符區(qū)別小結(jié),is是驗(yàn)證操作對(duì)象是不是自己希望的,as是將對(duì)象轉(zhuǎn)換成指定類型,需要的朋友可以參考下
    2015-01-01
  • 如何解決hash沖突

    如何解決hash沖突

    上篇文章 為什么哈希存取比較快?使用它需要付出什么代價(jià) 只是簡(jiǎn)單介紹了使用hash所帶來(lái)的利與弊。并未涉及hash的技術(shù)細(xì)節(jié),本文則著重學(xué)習(xí)一下如何解決哈希編址的沖突問(wèn)題。
    2016-06-06
  • C#并發(fā)編程之Task類詳解

    C#并發(fā)編程之Task類詳解

    Task是建立在線程池之上的一種多線程技術(shù),它的出現(xiàn)使Thread成為歷史。其使用方法非常簡(jiǎn)單,本文就來(lái)通過(guò)幾個(gè)示例為大家講講它的具體使用吧
    2023-03-03
  • C# out關(guān)鍵詞的應(yīng)用實(shí)例

    C# out關(guān)鍵詞的應(yīng)用實(shí)例

    下面小編就為大家分享一篇C# out關(guān)鍵詞的應(yīng)用實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 利用unity代碼C#封裝為dll的步驟分享

    利用unity代碼C#封裝為dll的步驟分享

    這篇文章主要給大家介紹了關(guān)于利用unity代碼C#封裝為dll的相關(guān)資料,文中通過(guò)圖文將實(shí)現(xiàn)的方法介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • C#將圖片存放到SQL SERVER數(shù)據(jù)庫(kù)中的方法

    C#將圖片存放到SQL SERVER數(shù)據(jù)庫(kù)中的方法

    這篇文章主要介紹了C#將圖片存放到SQL SERVER數(shù)據(jù)庫(kù)中的方法,以實(shí)例形式較為詳細(xì)的分析了C#保存圖片到SQL Server數(shù)據(jù)庫(kù)的具體步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • 解決C#獲取鼠標(biāo)相對(duì)當(dāng)前窗口坐標(biāo)的實(shí)現(xiàn)方法

    解決C#獲取鼠標(biāo)相對(duì)當(dāng)前窗口坐標(biāo)的實(shí)現(xiàn)方法

    本篇文章是對(duì)在C#中獲取鼠標(biāo)相對(duì)當(dāng)前窗口坐標(biāo)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 如何使用C#修改本地Windows系統(tǒng)時(shí)間

    如何使用C#修改本地Windows系統(tǒng)時(shí)間

    這篇文章主要介紹了如何使用C#修改本地Windows系統(tǒng)時(shí)間,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C# Winfrom實(shí)現(xiàn)Skyline畫直線功能的示例代碼

    C# Winfrom實(shí)現(xiàn)Skyline畫直線功能的示例代碼

    這篇文章主要介紹了C# Winfrom實(shí)現(xiàn)Skyline畫直線功能的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論