2016-06-13 33 views
2

我試圖建立從MahApps包SimpleChildWindow https://github.com/punker76/MahApps.Metro.SimpleChildWindowMahApps - SimpleChildWindow

可惜我cound不懂的樣品,並有幾個問題:

  1. 它說:「直接在XAML」 - 我應該在哪裏放?在父母的窗口還是這是單獨的窗口?

  2. await this.ShowChildWindowAsync(new CoolChildWindow(){IsModal = false}); - 我們在哪裏得到CoolChildWindow()?

這個問題看起來很愚蠢,雖然我在網絡上找不到任何進一步的信息或樣本。

將不勝感激的任何幫助或擴展代碼示例。

回答

6

「直接在XAML中」是指:將您的子窗口放入您的根網格中。

<Controls:MetroWindow x:Class="MahApps.Metro.SimpleChildWindow.Demo.MainWindow" 
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls" 
         xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow" 
         Title="MahApps.Metro Simple ChildWindow Demo" 
         GlowBrush="{DynamicResource AccentColorBrush}" 
         WindowStartupLocation="CenterScreen"> 

    <Grid x:Name="RootGrid"> 

     <Grid> 
      <!-- main content here --> 
     </Grid> 

     <simpleChildWindow:ChildWindow x:Name="child01" 
             CloseByEscape="False" 
             Closing="Child01_OnClosing" 
             HorizontalContentAlignment="Stretch" 
             VerticalContentAlignment="Stretch" 
             Padding="15" 
             ChildWindowImage="Error" 
             Title="TestChild 1"> 
      <Grid> 
       <!-- child content here --> 
      </Grid> 
     </simpleChildWindow:ChildWindow> 

     <simpleChildWindow:ChildWindow x:Name="child02" 
             ChildWindowWidth="400" 
             ChildWindowHeight="300" 
             EnableDropShadow="False" 
             Title="TestChild 2"> 
      <Grid> 
       <!-- child content here --> 
      </Grid> 
     </simpleChildWindow:ChildWindow> 

    </Grid> 

</Controls:MetroWindow> 

如果你喜歡使用後面的代碼,那麼你可以創建一個像CustomChildWindow定製ChildWindow以及創建和調用它

private async void OpenCustomChildWindow_OnClick(object sender, RoutedEventArgs e) 
{ 
    await this.ShowChildWindowAsync(new CustomChildWindow() { IsModal = false }, RootGrid); 
    // or 
    //await this.ShowChildWindowAsync(new CustomChildWindow() { IsModal = false }, OverlayFillBehavior.WindowContent); 
    // or 
    //await this.ShowChildWindowAsync(new CustomChildWindow() { IsModal = true }, OverlayFillBehavior.FullWindow); 
} 

您可以在GitHub上的主要演示發現,這也。

希望這會有所幫助。

+1

謝謝你的例子! :) – Oleksii