Подвижные Mahapps SimpleChildWindow - PullRequest
0 голосов
/ 15 мая 2019

Я использую Mahapps.Metro.SimpleChildWindow , чтобы показать окно ввода данных. Я хотел бы, чтобы окно входа было подвижным. Я установил «AllowMove» в своей разметке XAML, но окно все еще не может быть перемещено. Вот тот XAML, который я использую:

<UserControl x:Class="Project.Views.View"
             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"             
             xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
             xmlns:Dialog="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
             xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
             xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"             
             Dialog:DialogParticipation.Register="{Binding}"
             mc:Ignorable="d"
             d:DesignHeight="450" d:DesignWidth="800">

    <Grid x:Name="RootGrid">
        <simpleChildWindow:ChildWindow CloseByEscape="True"
                                       ChildWindowWidth="500"
                                       ChildWindowHeight="200"
                                       HorizontalContentAlignment="Stretch"
                                       VerticalContentAlignment="Stretch"
                                       HorizontalAlignment="Center"
                                       VerticalAlignment="Center"
                                       Margin="10"
                                       ChildWindowImage="None"
                                       BorderBrush="{DynamicResource AccentBaseColorBrush}"
                                       GlowBrush="{DynamicResource AccentColorBrush}"
                                       IsModal="True"
                                       AllowMove="True"
                                       IsOpen="{Binding IsChildWindowOpen}"
                                       Title="View/Edit ">
            <Grid>

                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>

                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="15" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>

                <!-- Child Window Content -->
            </Grid>
        </simpleChildWindow:ChildWindow>
        <-- Other controls and stuff -->
    </Grid>
</UserControl>

Я открываю и закрываю дочернее окно из ViewModel, устанавливая IsChildWindowOpen в true или false.

Я просматривал примеров на GitHub , но в примере с подвижным окном используется XAML, который находится во внешнем файле. Я использовал XAML, вложенный в текущее представление, чтобы связать его с текущим экземпляром ViewModel.

Что мне нужно изменить, чтобы сделать окно подвижным?

1 Ответ

0 голосов
/ 15 мая 2019

Хорошо, я понял это.Мне нужно было удалить

HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
HorizontalAlignment="Center"
VerticalAlignment="Center"

из объявления окна.

    <simpleChildWindow:ChildWindow CloseByEscape="True"
                                       ChildWindowWidth="500"
                                       ChildWindowHeight="180"
                                       Margin="10"
                                       BorderThickness="1"
                                       ChildWindowImage="None"
                                       BorderBrush="{DynamicResource AccentBaseColorBrush}"
                                       CloseOnOverlay="True"
                                       GlowBrush="{DynamicResource AccentColorBrush}"
                                       AllowMove="True"
                                       IsOpen="{Binding IsChildWindowOpen}"
</simpleChildWindow:ChildWindow>
...