c # - Resizable dialog vindue i WPF

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger MetroWindow klasse fra Mahapps til at vise dialogvindue af en slags.
Min idé var at oprette vinduet til automatisk ompasning, så det passer til indholdets størrelse


<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>     


men jeg har to spørgsmål
Første: Min vindue er berørt af brugerhandlinger (Mus dobbeltklik på titel, træk vindue til venstre eller højre skærmkant osv.), Og jeg vil have det frosset, men resizable.
Andet: Når jeg viser det samme vindue igen (uden at genskabe det, men med nyt indhold, der kan have en ny synlig størrelse), viser den den sidste position.


Hvordan kan jeg løse disse problemer uden kode-bag WindowSizeChanged hændelse fange?

Bedste reference


sæt ResizeMode='NoResize' og SizeToContent='WidthAndHeight'