2013-05-06 3 views
4

I가 (또한 문제를 보여주기 위해 몇 가지 더미 내용으로 가득)을 다음 XAML 코드를 축소하지 : 윈도우 성장하면 크기가 변경WPF 레이아웃 : 요소 증가하지만, 제대로

<Window x:Class="WpfWatchBird.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="378" Width="728" 
     Name="frmMainList"> 
    <Grid Name="grdMainLayout"> 
     <ListBox Name="lstData" SelectionChanged="lstData_SelectionChanged" HorizontalAlignment="Stretch"> 
      <ListBoxItem HorizontalContentAlignment="Stretch"> 
       <ListBoxItem.Content> 
        <Grid HorizontalAlignment="Stretch"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="100"/> 
          <ColumnDefinition Width="*"/> 
          <ColumnDefinition Width="*"/> 
          <ColumnDefinition Width="*"/> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="25"/> 
          <RowDefinition Height="100"/> 
          <RowDefinition Height="25"/> 
         </Grid.RowDefinitions> 

         <Label Content="nick" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Teal" Grid.Column="0" Grid.Row="0" Margin="0" Padding="0"/> 
         <Label Content="kategória" VerticalAlignment="Center" Foreground="Green" Grid.Column="1" Grid.Row="0" Margin="10,0,0,0" Padding="0"/> 
         <Label Content="stav záznamu" Foreground="Gray" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0" Padding="0" Grid.Column="2" Grid.Row="0"/> 
         <Label Content="1.1. 2013 12:00" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,5,0" Padding="0" Grid.Column="3" Grid.Row="0"/> 

         <Image HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" Grid.Row="1" Source="http://www.birdz.sk/la/bezfotky.gif" /> 
         <StackPanel x:Name="spItemText" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" HorizontalAlignment="Stretch"> 
          <TextBlock MaxWidth="{Binding ElementName=spItemText,Path=ActualWidth}" FontSize="18" TextWrapping="Wrap"> 
           <TextBlock.Text>Nadpis blogu, konečne, dámy a páni :)</TextBlock.Text> 
          </TextBlock> 
          <TextBlock HorizontalAlignment="Stretch" xml:space="preserve" TextWrapping="Wrap" Margin="10,0,0,0" 
             Padding="0" VerticalAlignment="Top" 
             MaxWidth="{Binding ElementName=spItemText, Path=ActualWidth}"> 
           <TextBlock.Text>Preview textu blogu, blablabla, blabla, bude to pekné a krásne 
a bude to vedieť robiť aj newliny, len ešte nejak spraviť zarovnanie, aby nebolo... aha, ono nie je, on mi len kvôli xml:space preserve... A už mi aj krásne funguje textwrapping, keď som poodstraňoval zopár nepotrebných 
...hmm... tak jeden riadok to wraplo dobre, ale ten ďalší už nie, zaujímavé... 
           </TextBlock.Text> 
          </TextBlock> 
         </StackPanel> 
         <Label Grid.Column="1" Grid.Row="2"> 
          <Hyperlink>Otvor originál</Hyperlink> 
         </Label> 
         <Label Grid.Column="3" Grid.Row="2" HorizontalAlignment="Right"> 
          <Hyperlink>Otvor zložku so zálohou</Hyperlink> 
         </Label> 
        </Grid> 
       </ListBoxItem.Content> 
      </ListBoxItem> 
      <ListBoxItem Content="Menu 2" /> 
     </ListBox> 
    </Grid> 
</Window> 

제대로 만시 그것을 축소하는 것은 그렇게하는 것을 거부한다. 나는 this question which seems very much related을 찾았지만 적절한 대답이 될 수있는 대답을 고려하지 않았습니다. (질문/답변에 대해서는 언급 할 수 없습니다. 그렇지 않으면 거기에 적어 둡니다).

"대답"은 기본적으로 ItemsControls가 자라는 것, 즉 인 것을 나타내지 만 "기본적으로"는이을 덮어 쓰는 방법이 있음을 보여 주지만 답변을 통해이 작업이 어떻게 수행되는지 설명 할 수는 없습니다. 그것에 대해 아무 것도 모르는 ... 어떤 아이디어? XAML에서 해보고 싶습니다. 코드 숨김 해킹없이 가능해야합니다 ...

+1

목록 상자에서'ScrollViewer.HorizontalScrollBarVisibility = "Disabled"를 설정해보십시오. – XAMeLi

+0

@XAMeLi 대단히 감사합니다. 선생님, 주석으로 쓰지 말고 친절하게 답변 해 주시겠습니까? –

답변

8

목록 상자에 ScrollViewer.HorizontalScrollBarVisibility="Disabled"을 설정하십시오.

스크롤 뷰어 (템플릿의 일부인 ListBox)는 내용을 축소하는 것보다 수평 스크롤 막대를 여는 것이 "더 편합니다".

+0

Man, 나는 반나절 동안 행운을 들이지 않고 TreeViewItem에서 TextBlock 텍스트를 오버플로하려고했습니다. 나는 웹에서 무엇을 검색해야할지조차 몰랐다. 나는'ScrollViewer.HorizontalScrollBarVisibility'를'Disabled' 대신'Hidden'으로 설정했습니다 ... 정말 감사합니다! – Daniel