8

Windows 8.1 で独自のスタイルの WPF ウィンドウに問題があります。デフォルトのウィンドウのドラッグ動作用に、WindowChrome を使用してシンプルな透明な WPF ウィンドウを作成しました。

<Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="300" Width="300" Background="Transparent"
        AllowsTransparency="True" WindowStyle="None">
    <WindowChrome.WindowChrome>
        <WindowChrome />
    </WindowChrome.WindowChrome>
    <Border Background="Gray" CornerRadius="20">
        <Grid>
        </Grid>
    </Border>
</Window>

Windows 8.1 の設定:

  • 拡張デスクトップを備えた 2 台のモニター
  • タスクバーはプライマリ デスクトップでのみ表示されます

再現:

  1. WPF アプリケーションを起動する
  2. セカンダリ スクリーンのウィンドウを移動する
  3. セカンダリ スクリーンのウィンドウを最大化します (たとえば、ウィンドウを一番上にドッキングします)。
  4. ウィンドウをセカンダリ スクリーンからプライマリ スクリーンに復元してドラッグする

--> マウスがプライマリ画面に入ると、タスクバー アイコンが消えます!

同じ再現をもう一度行うと、アイコンが再び表示されます。

.NET 4.5 または .NET 4.5.1 も使用しようとしました。

誰でもこの問題を説明できますか?

ありがとうございました!

4

2 に答える 2

2

このバグはWindowStyle="None"、WPF ウィンドウで設定した場合にのみ発生するようです。さらに、このオプションは、アプリケーションを最大化するときに横にスナップされる最新のアプリも壊します。奇妙に思えるかもしれませんが、ウィンドウの境界線を削除するためWindowStyleに使用する場合は設定する必要がないWindowChromeので、スキップしても問題ありません。

唯一の注意点は、使用できないことですAllowTransparency(ただし、このオプションではパフォーマンスに大きな問題があるため、最初から使用しないでください)。

于 2014-03-30T22:05:47.430 に答える