2017-03-24 22 views
0

MahappsのMetroWindowクラスを使用して、何らかの種類のダイアログウィンドウを表示します。 私の考えでは、それは、コンテンツサイズWPFのサイズ変更可能なダイアログウィンドウ

<controls:MetroWindow 
    ... 
    DataContext="{Binding DialogVM, Source={StaticResource ViewModelLocator}}" 
    Title="{Binding WindowHeader}" 
    WindowTitleBrush="{StaticResource MainStyleTitleBrush}" 
    Background="{StaticResource MainStyleBackgroundBrush}" 
    wpfExtensions:SizeObserver.Observe="True" 
    wpfExtensions:SizeObserver.ObservedWidth="{Binding xHeight, Mode=OneWayToSource}" 
    wpfExtensions:SizeObserver.ObservedHeight="{Binding xWidth, Mode=OneWay}" 
    MaxWidth="1110" MaxHeight="1080" 
    MinWidth="450" MinHeight="600" 
    ShowMinButton="False" 
    ShowMaxRestoreButton="False" 
    BorderThickness="1" 
    BorderBrush="{StaticResource MainStyleBorderBrush}" 
    SizeToContent="Width" 
    WindowStartupLocation="CenterScreen"> 
    <Grid> 
     <ContentPresenter Content="{Binding VM}"/> 
    </Grid> 
</controls:MetroWindo>  

だ収まるように、自動サイズ変更可能なウィンドウを作成することでしたが、私は2つの問題を抱えている 第1:私の窓は、ユーザのアクション(タイトルの上でマウスをダブルクリックして、左にドラッグウィンドウに影響を受けていますか、右の画面のエッジなど)、私はそれをフリーズしたいが、サイズを変更することができます。 2番目のもの:同じウィンドウを再表示すると(再作成せずに新しい表示サイズの新しいコンテンツが表示されます)、最後の位置に表示されます。

コードビハインドWindowSizeChangedイベントキャッチなしでこの問題をどのように解決できますか?

+0

1)あなたは 'のWindowStyle = NONE'その意志 'を無効にする' ウィンドウのタイトルを設定する必要がありますが、サイズ変更可能なままにしておきます。 2) 'タイトル 'になる内部の' Label'を 'Border'(ある色で塗りつぶし)に追加してください 3)ウィンドウのプロパティ[Top](https://msdn.microsoft.com/ru) -u/library/system.windows.window.top(v = vs.110).aspx)と[Left](https://msdn.microsoft.com/ru-ru/library/system.windows.window.left (v = vs.110).aspx)を使用してウィンドウの位置を保存します。 – Shakra

答えて

1

プットResizeModeです= "NORESIZE" とSizeToContent = "WidthAndHeightは"

関連する問題