0

以前の質問で、グリッドスプリッターを移動して、画像のリストボックスを含むエキスパンダーを展開できるようにしたかったので、展開すると、使用可能なスペースの量に基づいて画像のサイズが変更されます。助けを借りて、サイズ変更機能を動作させることができましたが、問題は、プログラムが最初に起動したときに、画像がサムネイルサイズではなくフルサイズになることです。エキスパンダーの初期幅を設定して、画像が最初に約175ピクセルのサムネイルとして表示されるようにする方法はありますか?

ColumnDefinitions:

<Grid.ColumnDefinitions>
    <ColumnDefinition MinWidth="25" Width="*" />
    <ColumnDefinition MinWidth="5" Width="5" />
    <ColumnDefinition Width="2*" />
    <ColumnDefinition MinWidth="5" Width="5" />
    <ColumnDefinition MinWidth="25" Width="*" />
</Grid.ColumnDefinitions>

0:エキスパンダー
1:グリッドスプリッター
2:テキストボックス
3:グリッドスプリッター
4:エキスパンダー(画像付きのテキストボックス)

XAML:

<GridSplitter 
    Name="gridSplitter2"
    Width="10" 
    Margin="0,0,0,0" 
    Grid.Column="3"
    IsEnabled="True" 
    HorizontalAlignment="Center"/>
    <Expander
        Style="{DynamicResource ExpanderStyle}"
        Name="pictureExpander"
        IsExpanded="True"
        Grid.Column="4"
        ExpandDirection="Left"
        Collapsed="pictureExpander_Collapsed"
        Expanded="pictureExpander_Expanded" >
        <ListBox 
            Name="photoList" 
            ItemsSource="{Binding Source={StaticResource PhotoBin}}"
            IsSynchronizedWithCurrentItem="True"
            ScrollViewer.CanContentScroll="False"
            ScrollViewer.HorizontalScrollBarVisibility="Disabled">
            <ListBox.ItemContainerStyle>
                <Style TargetType="{x:Type ListBoxItem}">
                    <Style.Resources>
                        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Yellow" />
                    </Style.Resources>
                    <Style.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter Property="BorderBrush" Value="Black"/>
                            <Setter Property="BorderThickness" Value="5"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </ListBox.ItemContainerStyle>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Image 
                        Name="thumbnailImage"
                        Source="{Binding FileLocation}"
                        Margin="5"
                        Stretch="UniformToFill"
                        StretchDirection="Both"
                        HorizontalAlignment="Stretch"
                        />
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Expander>
4

1 に答える 1

1

ColumnDefinitionsをいじることができると思います。5番目のColumnDefinitionに幅を設定すると、その開始幅が得られます

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition Width="175"/>
    </Grid.ColumnDefinitions>
    <!-- Your other Controls.. -->
    <GridSplitter Grid.Column="3" ... />
    <Expander Grid.Column="4" ... />
</Grid>

アップデート

私はあなたの問題を再現することができません。5番目のColumnDefinitionにWidth="175"を設定すると、この幅で起動します。ここに私のサンプルアプリをアップロードしました:http ://www.mediafire.com/?kjc9yqgmkq6dbiq

于 2010-12-23T01:54:33.980 に答える