2
목록 상자 항목에 ToggleButton 컨트롤 템플릿을 구현하려고합니다. 이 기능은 사용자가 목록 상자 항목을 클릭하여 특정 기능을 표시 할 수있는 응용 프로그램에서 사용됩니다.ListBox 내 Togglebutton 내의 텍스트 블록 내에서의 텍스트 래핑 ItemTemplate
<Style x:Key="ExampleListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ToggleButton IsChecked="{Binding Path=IsSelected, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}}"
HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch">
<StackPanel Orientation="Vertical">
<TextBlock x:Name="ExampleTitle" Grid.Row="0" Foreground="#333333"
FontFamily="pack://application:,,,/Resources/Fonts/#Neuropol Regular"
FontSize="16" Height="26" TextAlignment="Left" HorizontalAlignment="Left"
VerticalAlignment="Top" Text="{Binding ExampleDisplayName}"
Margin="5"></TextBlock>
<TextBlock Grid.Row="1" Foreground="#333333" Margin="5,-5,5,3" HorizontalAlignment="Stretch"
TextAlignment="Left" FontFamily="Verdana" VerticalAlignment="Top"
TextWrapping="Wrap" Text="{Binding ExampleDescription}"/>
</StackPanel>
</ToggleButton>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
나는 두 textblocks이 여기
<ListBox x:Name="_examplesListBox"
SelectionMode="Single"
BorderBrush="Transparent"
Background="Transparent"
ItemsSource="{Binding AllExamples}"
ItemContainerStyle="{StaticResource ExampleListBoxItemStyle}"
SelectedItem="{Binding SelectedExample, Mode=TwoWay}"/>
으로 목록 상자 하나가 ExampleDisplayName, ExampleDescription에 다른 바인딩 바인딩, 정의 다음과 같이
는 목록 상자 항목 템플릿을 정의한다. 달성하고자하는 효과는 두 번째 텍스트 블록 (설명)을 묶어서 사용 가능한 공간으로 제한하는 것입니다.
이것은 내가 지금지고있어 무엇 :
내가 원하는 것은 목록 상자의 크기에 따라 포장 예를 들어 설명을 보여주는 두 번째 줄입니다. 응용 프로그램이 시작되면 목록 상자는 첫 행 + 여백까지 자동 크기 조정됩니다.
제안 사항?
붐! 한 줄 수정. 기본적으로 텍스트 배치가있는 TextBlocks는 부모에 맞게 확장됩니다. 첫 번째 줄은 특정 크기를 요청하므로 목록 상자의 가로 스크롤 막대를 끄면 크기가 올바르게 조정됩니다. 감사! –