第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 DrawingContext.DrawLine 用 Adorner 繪制的線是“模糊的”

使用 DrawingContext.DrawLine 用 Adorner 繪制的線是“模糊的”

C#
慕勒3428872 2022-01-09 09:54:24
我Adorner在 WPF 應用程序中使用一個在拖放操作中呈現(xiàn)放置點。這條線應該是一條黑線,一個像素粗,但它最終會變成兩倍并略帶灰色。我猜這在某種程度上與 WPF 在子像素級別的渲染方式有關。使用 的Window托管內容AdornerLayer已SnapsToDevicePixels設置為true,這在過去解決了類似的問題,但似乎根本沒有影響Adorner。這是我得到的輸出。文本下方 2 像素粗的灰線應為 1 像素粗和黑色:的Pen用于繪制線定義與:_pen = new Pen(Brushes.Black, 1);并使用以下方法繪制:drawingContext.DrawLine(_pen, left, right);該AdornerLayer存在于默認的Window。如果這很重要,則將Adorner應用于 a TreeViewon aUserControl放置在Window.我需要做些什么才能讓它以我想要的方式呈現(xiàn)?
查看完整描述

2 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

在您的裝飾器類中,您可以嘗試其中一些選項和它們的組合......這就是我在裝飾器中使用的來消除模糊線條和模糊圖標:


        RenderOptions.SetEdgeMode(this, EdgeMode.Aliased);

        RenderOptions.SetBitmapScalingMode(this, BitmapScalingMode.NearestNeighbor);


        SnapsToDevicePixels = true;

        UseLayoutRounding = true;

不幸的是,您自己提供的答案有時是唯一的答案。偏移 0.5,將畫筆寬度設置為 1.0001 等是非常常見的解決方法。WPF 試圖通過抗鋸齒來變得聰明,但是對于 1 像素寬度/高度線和其他類型的元素,它們并沒有做到這一點。


查看完整回答
反對 回復 2022-01-09
?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

玩弄各種選項后,我發(fā)現(xiàn),抵消left并right通過.5調用之前DrawLine修復這個問題。這似乎也印證了我的亞像素理論。


left.Offset(5, 5);

right.Offset(5, 5);

drawingContext.DrawLine(_pen, left, right);

雖然這確實有效,但我發(fā)現(xiàn)它是一個非常不令人滿意的解決方案。我的繪圖邏輯很可能會變得更復雜,我不想經常處理半像素偏移。


我希望其他人可以為我指出一種“更正確”的處理方式。


查看完整回答
反對 回復 2022-01-09
  • 2 回答
  • 0 關注
  • 241 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號