私のWPFアプリケーションには、次のようなものがListBox
あります。ItemTemplate
<DataTemplate x:Key="DomainTemplate" DataType="DomainViewModel">
<Border BorderBrush="{Binding Converter={StaticResource BrushConverter}, Path=IsSelected}"
BorderThickness="3"
Grid.Column="0"
Name="SelectedBorder"
Padding="5">
<Button Click="SelectDomain_Click"
FontSize="16"
FontWeight="Bold"
IsEnabled="{Binding Path=CurrentSiteIsValid, RelativeSource={RelativeSource AncestorType={x:Type c:DomainPicker}}}"
MinHeight="60"
Tag="{Binding Path=DomainId}"
Width="120">
<TextBlock Text="{Binding Path=Name}"
TextAlignment="Center"
TextWrapping="WrapWithOverflow" />
</Button>
</Border>
</DataTemplate>
ウィンドウの幅は、 の幅によって決まりますListBox
。これは仕様によるものです。ListBox
の垂直エッジとその中のアイテムの間に非常に大きなスペースがあるようです。Snoop を使用すると、 に と同じ幅の がListBoxItem
含まれ、が0 で、2,0,0,0 に設定されていることがわかります。Border
ListBox
Margin
Padding
には、それを含むよりも 29 単位小さい幅の が含まBorder
れます。上のは2 つのユニットを占めているようです。その値は 0 であり、パディング プロパティはありません。ContentPresenter
Border
Padding
Border
Margin
Buttons
テンプレートの を狭くせずに、できればこのウィンドウを少し狭くしたいと思っています。その 29 単位のスペースはどこから来るのでしょうか? サイズを変更する方法はありますか?