اجعل wpf comboBoxes يملأ عرض عمود كامل
سؤال
أواجه مشاكل في صنع ملف ComboBox
تمتد لملء عرض العمود بأكمله في أ GridViewColumn
. يجب أيضًا تغيير حجمه عند تغيير حجم العمود.
في المثال التالي لدي ملف StackPanel
مع ComboBox
داخل. تم تعيين هذا لتمديده وسوف يمتد في الواقع لملء StackPanel
العرض.
ثم أضيف أ ListView
مع عمود واحد ، يحتوي على ملف StackPanel
مع ComboBox
. كلا ال StackPanel
و ال ComboBox
تم تعيينها للتمدد ، لكنها لا تفعل ذلك. أستخدم ألوان الخلفية لتحديد حجم StackPanel
S ، وليس هناك أحمر ما لم أضع عرضًا أو أضف عناصر إلى ComboBox
بحيث يحتاج إلى مزيد من العرض.
حاولت أيضًا اللعب مع HorizontalContentAlignment
الممتلكات دون نجاح.
<StackPanel Height="59" Margin="45,12,38,0" VerticalAlignment="Top" Background="Green">
<ComboBox HorizontalAlignment="Stretch" />
</StackPanel>
<ListView x:Name="MyListView" Margin="0,106,0,0">
<ListView.View>
<GridView>
<GridViewColumn Header="Num" Width="70">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Background="red" Orientation="Horizontal" HorizontalAlignment="Stretch">
<ComboBox HorizontalAlignment="Stretch" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
<ListViewItem></ListViewItem>
</ListView>
المحلول
حاول تعيين Style
التابع ListViewItem
. كما أزلت stackpanel الخاص بك.
<ListView x:Name="MyListView" Margin="0,106,0,0">
<ListView.Resources>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Header="Num" Width="170">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
<ListViewItem></ListViewItem>
</ListView>
لا تنتمي إلى StackOverflow