0

ポップアップ通知パネルが、内部コントロールに必要なスペースしか占有しないという問題があります。

私が持っているもの:

 <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 に必要なスペースだけを占めるようにしようとしています。全体のスペースを取っているようです。幅/高さを設定すると、中央に保持されますが、大きくなりません。

4

2 に答える 2

0

以下の変更されたコードは役に立ち、あなたのプロを解決するかもしれません

<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>
于 2013-02-07T16:54:55.767 に答える
0

DockPanel から Stackpanel に変更し、Hor/Vert アライメント センターを設定すると機能しました。

于 2013-02-07T16:49:22.137 に答える