Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF弹出面板占用所需空间_Wpf_Frontend - Fatal编程技术网

WPF弹出面板占用所需空间

WPF弹出面板占用所需空间,wpf,frontend,Wpf,Frontend,我有一个问题,使弹出式通知面板只占空间量的内部控制需要 我得到的是: <Grid> <DockPanel Panel.ZIndex="1111" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Stretch" Visibility="{Binding MessageVisibility}"> <Button Visibility="Collapsed" Name="clickButton

我有一个问题,使弹出式通知面板只占空间量的内部控制需要

我得到的是:

 <Grid>
    <DockPanel Panel.ZIndex="1111" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Stretch" Visibility="{Binding MessageVisibility}">
        <Button Visibility="Collapsed" Name="clickButton" Command="{Binding Path=CloseMessage}"/>
        <Border Background="LightGray" CornerRadius="20" MouseDown="Border_MouseDown" BorderThickness="8" BorderBrush="CadetBlue">
            <Grid VerticalAlignment="Center" HorizontalAlignment="Center" Margin="20px">
                <ItemsControl Grid.Column="0" Grid.Row="0" ItemsSource="{Binding Messages}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <TextBlock TextBlock.TextAlignment="Center" Text="{Binding FallbackValue='Message'}"/>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel/>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>

                </ItemsControl>

            </Grid>
        </Border>
    </DockPanel>
    <DockPanel  Panel.ZIndex="0">
...
    </DockPanel>
</Grid>

...

我试图使第一个DockPanel只占用ItemsControl所需的空间。它似乎占据了整个空间。设置宽度/高度将使其保持在中心,但不会使其增长。

将DockPanel更改为Stackpanel并设置Hor/Vert对齐中心有效。

下面修改的代码可能会有帮助,并解决您的问题

<Grid>
           <Grid.RowDefinitions>            
                <RowDefinition/>            
                <RowDefinition/>            
            </Grid.RowDefinitions> 
       <Grid.ColumnDefinitions>          
             <ColumnDefinitions/>
       </Grid.ColumnDefinitions>          

    <DockPanel Panel.ZIndex="1111" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Stretch" Visibility="{Binding MessageVisibility}">
        <Button Visibility="Collapsed" Name="clickButton" Command="{Binding Path=CloseMessage}"/>
        <Border Background="LightGray" CornerRadius="20" MouseDown="Border_MouseDown" BorderThickness="8" BorderBrush="CadetBlue">
            <Grid VerticalAlignment="Center" HorizontalAlignment="Center" Margin="20px">
                <ItemsControl Grid.Column="0" Grid.Row="0" ItemsSource="{Binding Messages}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <TextBlock TextBlock.TextAlignment="Center" Text="{Binding FallbackValue='Message'}"/>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel/>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>

                </ItemsControl>

            </Grid>
        </Border>
    </DockPanel>
    <DockPanel  Panel.ZIndex="0" Grid.Column="0" Grid.Row="1">
...
    </DockPanel>
</Grid>

...