私のWPFアプリケーションのスタイルに問題があります。 一部のユーザーは、Classic Widowsテーマを適用し、同じプロパティ(フォントサイズ、余白、パディング)を持つテキストブロックのActualHeightは、それらが使用される方法によって異なります。
例えば、エアロテーマを使用したFontSize = 15のTextBlockの高さは20で、古典的なものは18です。クラシックWindowsテーマとエアロのWPFコントロールのサイズ
どうすればこのような現象を回避できますか?
私のWPFアプリケーションのスタイルに問題があります。 一部のユーザーは、Classic Widowsテーマを適用し、同じプロパティ(フォントサイズ、余白、パディング)を持つテキストブロックのActualHeightは、それらが使用される方法によって異なります。
例えば、エアロテーマを使用したFontSize = 15のTextBlockの高さは20で、古典的なものは18です。クラシックWindowsテーマとエアロのWPFコントロールのサイズ
どうすればこのような現象を回避できますか?
組み込みコントロールの既定のスタイルは、適用される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でのシステムのテーマを変更する方法