2011-08-06 15 views
0

私はカスタムウィンドウスタイルのWPアプリケーションを持っています。アプリケーションウィンドウのサイズは固定であり、サイズ変更できません(クライアントの要求)。WPFがアプリケーションのウィンドウを画面の解像度に合わせてくくります

画面の再表示がアプリケーションウィンドウのサイズより小さい場合、ウィンドウが切り取られます。 ウィンドウをドラッグして切り取った部分を画面に表示すると、表示されません。

ウィンドウを画面解像度にクロップすることをWPFに指示するにはどうすればいいですか?ドラッグするとウィンドウ全体が表示されます。

私の窓のコードは以下の通りです:

<Window x:Class="AudioApplication.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" 
     d:DesignHeight="540" d:DesignWidth="1020" 
     xmlns:VW="clr-namespace:MyApp.View" 
     Title="MyApp" AllowsTransparency="False" 
     WindowStyle="None" Background="#6C6D6C" 
     ResizeMode="NoResize" ShowInTaskbar="True" 
     WindowStartupLocation="CenterScreen" Width="1005" Height="500" 
     Icon="/MyApp;component/MyApp.ico"> 
+0

実行しているWindowsのバージョンはどれですか? –

+0

私はWindows 7 64ビットでテストし、Windows XP 32ビットの仮想マシンでもテストしました。切り抜きは常に発生します。 – JustAMartin

答えて

1

最後に解決策が見つかりました。 MinWidthプロパティとMinHeightプロパティを設定する必要がありました。私はそれらがウィンドウの一般的なトリミングに影響するかもしれないということを知らなかった。

1

私はこのトリックは、あなた(お客様)の期待に合うかどうかわかりませんが、私はいくつかのアプリケーションで次のコードを使用します。

 //set window size 
     this.Width = SystemParameters.MaximizedPrimaryScreenWidth - 6.0 - 2 * SystemParameters.BorderWidth; 
     this.Height = SystemParameters.MaximizedPrimaryScreenHeight - 6.0 - 2 * SystemParameters.BorderWidth; 
     this.Left = 0.0; 
     this.Top = 0.0; 

Windows.Loadedイベントハンドラ、およびウィンドウサイズ内の場所、それは全体のデスクトップ領域に適合します。あなたはデスクトップのサイズを確認することができますし、ウィンドウの元のサイズよりも小さい場合は、最高で調整することができます。

ウィンドウがユーザーのサイズ変更を許可していない場合でも動作するはずです。

+0

アプリケーションには、固定サイズのグラフィック要素がいくつか含まれています。つまり、ウィンドウのサイズを変更しないでください。そうしないと、ウィンドウの外観が乱れることがあります。 – JustAMartin

+0

申し訳ありませんが、この時点ではわかりません。ウィンドウのサイズを維持し、画面のサイズを低く設定する必要がある場合は、どのようにUI領域に合わせることができますか? –

+0

私はそれに適合したくないです、私はウィンドウをドラッグすると、ウィンドウの以前隠れた部分が見えるようにします。しかし、今、私がウィンドウをドラッグすると、WPFはオフスクリーンであった部分をまだ切り取っていて、画面に戻って見えるはずですが、それをもう一度表示しないことがわかります。 – JustAMartin

関連する問題