2009-07-28 13 views
1

折りたたみ状態でも囲むコンテンツを表示するようにエクスパンダを設定するにはどうすればよいですか?私は次のコードスニペットを持っている、誰もこのコードの変更を指すことができますか?WPFでエキスパンダーコントロールの最小サイズを設定するにはどうすればよいですか?

<Window x:Class="UI2.Window1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Window1" Height="358" Width="300"> 
<TabControl> 
    <TabItem Header="Buga Buga"> 
     <StackPanel> 
      <Expander ClipToBounds="False"> 
       <ListBox Name="lstProcesses" 
         MinHeight="60"> 
       </ListBox> 
      </Expander> 
     </StackPanel> 
    </TabItem> 
</TabControl> 

おかげ

+0

そのコンテンツをエクスパンダのヘッダーに表示したいですか? –

+0

折りたたみをしたくない場合はエクスパンダを使用しないでください –

答えて

2

それはパンダのような音はありませんが、このシナリオのために使用されなければならないコントロールです。パンダはこのように、ヘッダ、およびコンテンツを持っています

<Expander Header="Visible all the time"> 
    <TextBlock Text="Hidden until expanded" /> 
</Expander> 

あなたは他の時間に特定の高さまでの時間の一部を設定して、気ままのコントロールをしたいようにそれは私に聞こえます。

ListBoxMaxHeightプロパティにToggleButton(Expanderも内部的に使用する)をバインドすることでこれを達成できると思います。

Kaxamlにこのような何かを試してみてください:

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:diag="clr-namespace:System.Diagnostics;assembly=System"> 

    <Page.Resources> 
    <!-- A way of getting some test data in Kaxaml --> 
    <ObjectDataProvider x:Key="Processes" 
         MethodName="GetProcesses" 
         ObjectType="{x:Type diag:Process}" /> 
    </Page.Resources> 

    <StackPanel> 
    <ToggleButton Name="Expand" Content="Expand" /> 
    <ListBox Name="lstProcesses" 
      ItemsSource="{Binding Source={StaticResource Processes}}" 
      DisplayMemberPath="ProcessName"> 
     <ListBox.Style> 
     <Style TargetType="ListBox"> 
      <Style.Triggers> 
      <DataTrigger Binding="{Binding ElementName=Expand, Path=IsChecked}" 
         Value="False"> 
       <Setter Property="MaxHeight" Value="60" /> 
      </DataTrigger> 
      </Style.Triggers> 
     </Style> 
     </ListBox.Style> 
    </ListBox> 
    </StackPanel> 
</Page> 
0

ここではどのようにエキスパンダー内に含まれるリストボックスで選択された項目に折りたたまれたテキスト(ヘッダー)への簡単な例です:

<Expander ClipToBounds="False"> 
    <ListBox Name="lstProcesses" 
       MinHeight="60"> 
    </ListBox> 
    <Expander.Header> 
     <TextBlock Text="{Binding SelectedItem, ElementName=lstProcesses}"/> 
    </Expander.Header> 
</Expander> 
関連する問題