MMC スナップインの一部である Windows フォーム内で WPF TabControl をホストしています。Windows 8.1 ではすべて問題なく表示されます。
しかし、Windows Server 2012 R2 には問題があります。
上から、TabControl の境界線が増えていることがわかります。また、他の WPF タブ項目のいくつかで他の問題に気付きました (リスト ビュー項目が中央ではなく上部に垂直に配置されているなど)。しかし今のところ、2 倍の太さの境界線の問題に対処しましょう。なぜこれが起こったのですか、どうすれば修正できますか? この問題について何時間も Google に問い合わせてみましたが、適切な回避策や修正方法が見つからないようです。また、インバウンド テキストの下にも境界線が表示されていることに注意してください。これはおかしくないですか?
Windows フォーム内で WPF コントロールをホストするためElementHost
に、ダイアログのオブジェクト部分の子コントロールを WPF コントロールに設定します。
WPFControlHost.Child = new WPFConfigurationTabPageControl(configuration, this);
私の WPF コントロールでは、特別なことや異常なことは何もしていません。XAML でタブ コントロールを作成します。
<TabControl Margin="10 10 10 0">
<TabItem Name="TabItemIdentity" Header="_Identity"/>
<TabItem Name="TabItemDirectories" Header="_Directories"/>
<TabItem Name="TabItemRouting" Header="_Routing"/>
<TabItem Name="TabItemOutbound" Header="O_utbound"/>
<TabItem Name="TabItemInbound" Header="I_nbound"/>
</TabControl>
次に、WPF コントロールのコンストラクターでタブ項目を設定します。
IdentityControl = new WPFIdentityControl(configuration, this);
TabItemIdentity.Content = IdentityControl;
DirectoriesControl = new WPFDirectoriesControl(configuration, this);
TabItemDirectories.Content = DirectoriesControl;
RoutingControl = new WPFRoutingControl(configuration, this);
TabItemRouting.Content = RoutingControl;
OutboundControl = new WPFOutboundControl(configuration, this);
TabItemOutbound.Content = OutboundControl;
InboundControl = new WPFInboundControl(configuration, this);
TabItemInbound.Content = InboundControl;
編集:TabControl(<TabControl Margin="10 10 10 0" BorderThickness="0">
)に0の厚さを設定すると、次のようになります。
TabControl
Windows Server 2012 R2のコントロールの一部として、拡大された境界線がこのようにレンダリングされていることは確かですが、これはなぜでしょうか? 拡大されるのはなぜですか?どうすれば修正できますか?
BorderThickness を 1 に設定すると、拡大された境界線の問題が明示的に修正されますが、ヘッダー テンプレート自体に下の境界線があるか、ヘッダーの下側に 2 倍のサイズの下の境界線があるヘッダー テンプレートは修正されないため、Blend を起動して編集する必要があると思いますこれらのテンプレートを手動で下の境界線を削除しますが、これはまったく正気ではありません。Server 2012 でこの問題が発生するのはなぜですか?