簡體   English   中英

MahApps - SimpleChildWindow

[英]MahApps - SimpleChildWindow

我正在嘗試從 MahApps 包中設置一個SimpleChildWindow

不幸的是,我無法理解樣本並有幾個問題:

  1. 它說:

直接在 XAML 中

  • 我應該把它放在哪里?

在父窗口中還是這是單獨的窗口?

  1. await this.ShowChildWindowAsync(new CoolChildWindow() { IsModal = false });
    • 我們從哪里得到CoolChildWindow()

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

“直接在 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 上的主要演示中找到它。

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM