2011-04-07 117 views
0

我想要基於用戶屏幕分辨率的默認字體大小。 也就是說,如果屏幕工作區寬度小於1024使用的字體大小10使用其他字體大小14 當前使用的「SystemParameters.WorkArea.Width」確定的寬度根據屏幕尺寸設置WPF字體大小

我可以設置一個全球性的字體大小和有上午一個轉換器來返回字體大小,但我真的很難找出如何使它火。即。當窗口大小的變化,使它檢查字體大小應該是什麼

<Window.Resources> 

    <local:SetFontSize x:Key="myConverter" /> 

    <Style TargetType="{x:Type Control}" x:Key="baseStyle"> 
     <Setter Property="FontSize" Value="14" /> 
     <Setter Property="FontFamily" Value="Calibri" />   

</Window.Resources> 

我發現下面的事件,但似乎無法將兩個連接在一起(儘管我可能會對此錯誤的方法)

<Window.Triggers> 
    <EventTrigger RoutedEvent="SizeChanged">   
    </EventTrigger> 
</Window.Triggers> 

回答

1

爲什麼你要這個嗎? Wpf使用抽象座標,並使用當前的監視器DPI和分辨率將它們轉換爲像素。所以,你的應用程序應該自動縮放以在每個屏幕上看起來類似。 我會建議,使用有彈性的佈局,滾動條等。使您的應用程序在較小的屏幕上使用。

+0

謝謝你們,我很欣賞你們倆的意見,並會重新考慮我的方法。我仍然發現,無論DPI設置如何,800 x 600和1920 x 1200之間的文本大小都有很大差異,例如,我可以做一個文本框strech,但不能使相應的標籤'字體strech',可以使事情看起來很奇怪。 – 2011-04-08 10:06:17

1

請記住,WPF應用程序是'DPI意識',字體大小不是像素 - 所以如果用戶使用不同的DPI設置來增加字體大小,它會自動反映在您的WPF應用程序中。希望用戶有可能像他們應該那樣使用DPI設置?

(如果其他應用程序使用的字體大小爲10,它太小,而不是重寫應用程序,他們可能會調整自己的DPI - 如果沒有其他應用程序使用的字體大小爲10,它可能太小了所有用戶)

我意識到這是一個無法回答的問題,但是犧牲設計並且不得不爲一個不會調整DPI設置的人破解東西而感到羞恥?我太過消極嗎? :)

相關問題