<以下、最初の質問です>
WPFにてフォントを選択するウィンドウを作成しています
フォントが変更されてもコントロールが適切な位置・大きさになるように
動的に配置したいのですが現在、ListBoxの高さが希望した大きさに変更しません
希望としましてはListBoxのアイテム数を5個と指定したら5個が収まる大きさ(ListBox.Height)
に動的に変更されることです
6個以上だとスクロールバーが表示したいのです
現在は追加されたアイテム数の分、ListBoxの高さが変更されています
XAML
1<Window x:Class="WpfApp1.FontDialog" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:WpfApp1" 7 mc:Ignorable="d" 8 Title="フォントの選択" WindowStyle="SingleBorderWindow" ResizeMode="NoResize" SizeToContent="WidthAndHeight" 9 Loaded="Window_Loaded" d:DesignHeight="361.933" Width="542"> 10 11 <DockPanel Margin="10"> 12 <!-- *********************************************************************** -- 13 <!-- ボタン類 DockPanelの指定方法 グーグルで wpf dock fill と検索 --> 14 <!-- *********************************************************************** --> 15 <Grid DockPanel.Dock="Bottom" Margin="0,10,0,0"> 16 <Grid.ColumnDefinitions> 17 <ColumnDefinition Width="2*"/> 18 <ColumnDefinition Width="1*"/> 19 <ColumnDefinition Width="5"/> 20 <ColumnDefinition Width="1*"/> 21 </Grid.ColumnDefinitions> 22 <Grid.RowDefinitions> 23 <RowDefinition Height="Auto"/> 24 </Grid.RowDefinitions> 25 26 <Button Name="btnOK" Grid.Row="0" Grid.Column="1" IsDefault="True" Content="OK" Click="btnOK_Click" TabIndex="0" /> 27 <Button Name="btnCancel" Grid.Row="0" Grid.Column="3" IsCancel="True" Content="キャンセル" TabIndex="1" /> 28 </Grid> 29 30 <Grid> 31 <Grid.ColumnDefinitions> 32 <ColumnDefinition Width="2.5*"/> 33 <ColumnDefinition Width="5"/> 34 <ColumnDefinition Width="2.5*"/> 35 <ColumnDefinition Width="5"/> 36 <ColumnDefinition Width="1*"/> 37 </Grid.ColumnDefinitions> 38 <Grid.RowDefinitions> 39 <RowDefinition Height="Auto"/> 40 <RowDefinition Height="Auto"/> 41 <RowDefinition/> 42 <RowDefinition Height="Auto"/> 43 <RowDefinition/> 44 <RowDefinition Height="Auto"/> 45 <RowDefinition Height="Auto"/> 46 </Grid.RowDefinitions> 47 48 <!-- *********************************************************************** --> 49 <!-- 1列目 --> 50 <!-- *********************************************************************** --> 51 <Label Grid.Row="0" Grid.Column="0" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" Target="{Binding ElementName=txtFamilyName}" Content="フォント(_F)" /> 52 <TextBox x:Name="txtFamilyName" Grid.Row="1" Grid.Column="0" FontWeight="Bold" /> 53 <ListBox x:Name="lstFamilyName" Grid.Row="2" Grid.Column="0" Grid.RowSpan="5" SelectionChanged="lstFamilyName_SelectionChanged" > 54 <ListBox.ItemsPanel> 55 <ItemsPanelTemplate> 56 <VirtualizingStackPanel /> 57 </ItemsPanelTemplate> 58 </ListBox.ItemsPanel> 59 60 <ListBox.ItemTemplate> 61 <DataTemplate> 62 <StackPanel Orientation="Horizontal"> 63 <TextBlock VerticalAlignment="Center" Margin="3" Text="{Binding}" /> 64 <TextBlock VerticalAlignment="Center" Text="Sample" FontFamily="{Binding}" /> 65 </StackPanel> 66 </DataTemplate> 67 </ListBox.ItemTemplate> 68 </ListBox> 69 70 <!-- *********************************************************************** --> 71 <!-- 2列目 --> 72 <!-- *********************************************************************** --> 73 74 <!-- *********************************************************************** --> 75 <!-- 3列目 --> 76 <!-- *********************************************************************** --> 77 <Label x:Name="lblTypeface" Grid.Row="0" Grid.Column="2" Target="{Binding ElementName=txtTypeface}" Content="タイプフェース(_Y)" /> 78 <TextBox x:Name="txtTypeface" Grid.Row="1" Grid.Column="2" FontWeight="Bold" /> 79 <ListBox x:Name="lstTypeface" Grid.Row="2" Grid.Column="2" SelectionChanged="lstTypeface_SelectionChanged" /> 80 <Label Grid.Row="3" Grid.Column="2" Content="サンプル(_M)" Target="{Binding ElementName=txtSample}" /> 81 <TextBox Name="txtSample" Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="3" AcceptsReturn="True" TextWrapping="Wrap" ToolTip="テキストの編集可能" /> 82 <Label Grid.Row="5" Grid.Column="2" Content="言語(_L)" Target="{Binding ElementName=cmbLanguage}" /> 83 <ComboBox x:Name="cmbLanguage" Grid.Row="6" Grid.Column="2" Grid.ColumnSpan="3" SelectionChanged="cmbLanguage_SelectionChanged" /> 84 85 <!-- *********************************************************************** --> 86 <!-- 4列目 --> 87 <!-- *********************************************************************** --> 88 89 <!-- *********************************************************************** --> 90 <!-- 5列目 --> 91 <!-- *********************************************************************** --> 92 <Label Grid.Row="0" Grid.Column="4" Target="{Binding ElementName=txtFontSize}" Content="サイズ(_S)" /> 93 <TextBox x:Name="txtFontSize" Grid.Row="1" Grid.Column="4" FontWeight="Bold" /> 94 <ListBox x:Name="lstFontSize" Grid.Row="2" Grid.Column="4" SelectionChanged="lstFontSize_SelectionChanged" /> 95 </Grid> 96 </DockPanel> 97</Window> 98
よろしくお願いいたします。
以下の環境です
Visual Studio Community 2019
.NET Core 3.1
WPF Windowsアプリケーション
c#
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/25 12:22