ListBox
一度に1 つだけを選択し、選択したままにし、選択を解除できるようにする必要があるため、水平 (おそらくもっと良い方法があります) を使用して一種のナビゲーション バーを作成しています。その作業を行うために、私はを使用していToggleButton
ます。
問題は、ボックスに収まるようにコンテンツを「ストレッチ」して、選択領域の任意の場所をクリックしてトグルボタンを使用して選択を解除できるようにすることです。
私の問題は、ストレッチのためにボタンが上に配置されていることです。ストレッチを使用しているときにボタンを垂直方向に中央揃えにすることはできますか? それらを同時に中央に配置しようとすると、ボタン自体が再び中央に縮小される正方形に戻ります。
<ListBox Grid.Row="0" Grid.Column="0" ItemsSource="{Binding PageViewModels}" SelectedItem="{Binding CurrentPageViewModel}" Style="{StaticResource MenuStyle}">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Padding" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border Background="{TemplateBinding Background}">
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FCCC"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#FAAA"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<ToggleButton VerticalAlignment="Stretch"
Content="{Binding Name}"
IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}"
Style="{StaticResource BlankButtonStyle}"
/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
これはおそらく本当にばかげた質問ですが、それは本当に私を悩ませており、私は少し立ち往生しています.