1

私の Shell.xaml では、2 つのモジュールがそれぞれ半分の高さを占め、拡張可能になるようにします。最初のモジュールが切断されているのはなぜですか?

代替テキスト

シェル:

<Window x:Class="HelloWorld.Desktop.Shell"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:cal="http://www.codeplex.com/CompositeWPF"
        Height="300"
        Width="300"
        Title="Hello World" >

    <DockPanel LastChildFill="True">
        <ContentControl Name="MainRegion" 
                        DockPanel.Dock="Top"
                 cal:RegionManager.RegionName="MainRegion"/>
        <ContentControl 
            Name="SecondRegion" 
            DockPanel.Dock="Top"
            cal:RegionManager.RegionName="SecondRegion"/>
    </DockPanel>
</Window>

HelloWorldView:

<UserControl x:Class="HelloWorldModule.Views.HelloWorldView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel
            Background="Tan">
        <TextBlock Text="Hello World View"
                   Foreground="Brown"
                   Margin="10 10 10 0"
                   FontSize="14"/>

        <TextBlock Name="DisplayArea" 
                 Margin="10 10 10 0" Text="(default text)" TextWrapping="Wrap"/>
    </StackPanel>
</UserControl>

セカンド ビュー:

<UserControl x:Class="SecondModule.Views.SecondView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel
            Background="Orange">
        <TextBlock Text="Second View"
                   Foreground="Brown"
                   Margin="10 10 10 0"
                   FontSize="14"/>

        <TextBox Name="Message" 
                 Margin="10 10 10 0" Text="skfddsf" TextChanged="TextBox_TextChanged"/>
    </StackPanel>
</UserControl>
4

2 に答える 2

1

これに答えさせてください。行の高さが可変のGridを使用しましたが、うまくいきました。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="5*"/>
        <RowDefinition Height="5*"/>
    </Grid.RowDefinitions>
    <ContentControl Name="MainRegion" 
                    Grid.Row="0"
             cal:RegionManager.RegionName="SecondRegion"/>
    <ContentControl 
        Name="SecondRegion" 
                    Grid.Row="1"
        cal:RegionManager.RegionName="MainRegion"/>
</Grid>

ただし、 StackPanelDockPanelが自動的にスペースを均等に分割しないのは奇妙です。

于 2009-07-29T11:53:52.593 に答える
0

StackPanel は、使用可能なスペースを埋めるために子を拡大しません (これは機能です)。

を使用すると、DockPanel は伸縮しますLastChildFill="true"

于 2009-07-29T11:56:57.373 に答える