2011-03-21 130 views
2

我創建了一個類似於TabControl的自定義控件。它工作的很好,除了當我調整內容的大小時,標題項中的文本變得模糊。它可以,例如是這樣的:WPF文本呈現問題

enter image description here

不僅是文字,但周圍的文本框還可以得到非垂直。看到藍色邊框「常規」項:

enter image description here

是什麼原因造成這個問題?我設置了SnapToDevicePixels = True。 感謝您的任何想法!

編輯

我使用.NET 4.0。 TextOptions.TextFormattingMode被設置爲「Display」。

如果我在顯示按鈕的ItemsControl的樣式中應用DropShadowEffect效果,則會出現模糊文本和背景的問題。這是效果代碼:

<Setter Property="Effect"> 
    <Setter.Value> 
     <DropShadowEffect Direction="0" ShadowDepth="1" BlurRadius="10" Opacity="0.2" Color="Black" /> 
    </Setter.Value> 
</Setter> 

如果未啓用此代碼,文本和邊框會很好地顯示。

+0

你使用的是什麼版本? – abramlimpin 2011-03-21 08:31:40

+0

我在這裏遇到了完全相同的問題。只有在使用DropShadowEffect和TextFormattingMode = Display時纔會發生。刪除其中一個可以解決問題,但是它沒有陰影,或者文本看起來像.NET 4之前一樣模糊。這實在令人討厭。如果您找到解決方案,請讓我們知道! – gehho 2012-09-20 07:33:53

+0

您是否找到了解決方案? – Daniel 2013-05-31 15:34:11

回答

0

有兩件事情要考慮:

  • 您使用.NET 3.5或.NET 4.0?我問的原因是文本渲染已經在版本之間發生了變化。在4.0中,它好多了。
  • 有時你需要等一會兒,直到文本變得更銳利,所以你滾動,然後一秒鐘後文本變得更加清晰。這可能也是你問題的一個原因。
+0

我正在使用.NET 4.0。 TextOptions.TextFormattingMode設置爲「顯示」 – 2011-03-21 08:42:17

+0

並且等待文本變得更加清晰不是問題。無論等待多久,它都保持不變。 – 2011-03-21 08:57:24

1

我懷疑你自己說過了:SnapToDevicePixels將破壞文本渲染,如果你已經調整了文本的大小,所以它會顯示像素。您可能希望將SnapToDevicePixels="True"保留在您的邊框/背景上,但將其關閉以供文本元素使用。

至於你的邊框......你可以發佈xaml嗎?我猜你不是隻用一個圓角的單個元素 - 你是否將這個選項卡的邊緣繪製爲三條單獨的線?

+0

我將SnapToDevicePixels更改爲false,仍然得到相同的結果。 xaml的所有內容都非常大,所以我認爲發佈它是沒有意義的。藍色按鈕的類型是ToggleButton,按鈕的內容有幾個邊框: – 2011-03-21 09:34:37

+0

2011-03-21 09:36:28

+0

正如我在我編輯的問題中指出的,整個問題只發生如果我將Effect屬性設置爲DropShadowEffect。沒有這種效果,渲染就沒有問題。 – 2011-03-21 09:37:52