2010-12-23 7 views
0

이전 질문에서 gridsplitter를 확장하여 이미지 목록 상자가 포함 된 확장기를 확장 할 수 있기를 원했기 때문에 이미지가 확장되면 이미지의 크기가 사용할 수있는 공간의 amout에. 도움말을 통해 크기 조정 기능을 사용할 수 있었지만 문제는 이제 프로그램이 처음 시작될 때 이미지가 미리보기 크기가 아닌 전체 크기로 표시된다는 것입니다. 이미지가 초기에 약 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 gridsplitter
3 입력란 : gridsplitter
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> 

답변

1

ColumnDefinitions를 가지고 놀 수 있다고 생각합니다. 그것은

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

업데이트

나는 당신의 문제를 재현 할 수없는거야위한 당신의 다섯 번째 ColumnDefinition에 폭을 설정하면 시작 폭 당신에게 제공 할 것입니다. 다섯 번째 ColumnDefinition에서 Width = "175"로 설정하면이 너비로 시작됩니다. http://www.mediafire.com/?kjc9yqgmkq6dbiq

+0

이미지는 여전히 어떤 이유로 든 실제 크기로 표시됩니다 .. – MBU

+0

@MikeU : 프로그램을 실행할 때 ColumnDefinition의 너비 설정이 무시된다는 것을 의미합니까? 너비 = "10"으로 설정하면 5 번째 열이 더 큰 너비로 시작됩니까? 아니면 익스팬더 만 부분적으로 볼 수 있습니까? –

+0

너비 = "175"로 설정하면 확장기는 여전히 이미지 크기만큼 크게 렌더링됩니다. 따라서 전체 응용 프로그램 창을 채우고 175를 무시합니다. – MBU