2016-12-26 10 views
0

私のWPFアプリケーションのスタイルに問題があります。 一部のユーザーは、Classic Widowsテーマを適用し、同じプロパティ(フォントサイズ、余白、パディング)を持つテキストブロックのActualHeightは、それらが使用される方法によって異なります。
例えば、エアロテーマを使用したFontSize = 15のTextBlockの高さは20で、古典的なものは18です。クラシックWindowsテーマとエアロのWPFコントロールのサイズ

どうすればこのような現象を回避できますか?

答えて

2

組み込みコントロールの既定のスタイルは、適用されるWindowsテーマによって異なります。

あなたがこれを避けたい場合は、常にあなたのApp.xamlファイルに対応するテーマのリソースディクショナリを追加して、特定のテーマを使用するようにアプリケーションを強制することができます:参照を追加することを忘れないでください

<Application x:Class="WpfApplication1.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:local="clr-namespace:WpfApplication1" 
      StartupUri="MainWindow.xaml" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      d1p1:Ignorable="d" xmlns:d1p1="http://schemas.openxmlformats.org/markup-compatibility/2006"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35, 
ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

Aeroテーマを使用する場合は、対応するアセンブリ(Project-> Add Reference-> Assemblies-> Visual StudioのFramework)(例:PresentationFramework.Aero.dll)に移動します。http://northhorizon.net/2010/how-to-actually-change-the-system-theme-in-wpf/

:実際にWPFでのシステムのテーマを変更する方法

Windows 7 theme for WPF?

関連する問題