سؤال

أواجه مشاكل في صنع ملف ComboBox تمتد لملء عرض العمود بأكمله في أ GridViewColumn. يجب أيضًا تغيير حجمه عند تغيير حجم العمود.

في المثال التالي لدي ملف StackPanel مع ComboBox داخل. تم تعيين هذا لتمديده وسوف يمتد في الواقع لملء StackPanel العرض.

ثم أضيف أ ListView مع عمود واحد ، يحتوي على ملف StackPanel مع ComboBox. كلا ال StackPanel و ال ComboBox تم تعيينها للتمدد ، لكنها لا تفعل ذلك. أستخدم ألوان الخلفية لتحديد حجم StackPanelS ، وليس هناك أحمر ما لم أضع عرضًا أو أضف عناصر إلى 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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top