簡體   English   中英

UWP ItemsControl內容未像WPF中那樣拉伸

[英]UWP ItemsControl content not stretching as in WPF

我在UWP項目中遇到一些我無法理解的行為,但是我在WPF中的實現卻按預期工作。

如果我有一個StackPanel,並插入了一些網格,則網格將按預期的方式拉伸以填充StackPanel的寬度。

<StackPanel Grid.Row="1">
    <Grid Background="Blue">
        <TextBlock>Item 1</TextBlock>
    </Grid>
    <Grid Background="Green">
        <TextBlock>Item 2</TextBlock>
    </Grid>
    <Grid Background="Red">
        <TextBlock>Item 3</TextBlock>
    </Grid>
    <Grid Background="Pink">
        <TextBlock>Item 4</TextBlock>
    </Grid>
</StackPanel>

StackPanel中的網格按預期工作

但是,一旦嘗試引入綁定和集合,此行為就會停止。

<ItemsControl ItemsSource="{Binding Devices}" Grid.Row="1">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid Background="Violet">
                <TextBlock>Hello</TextBlock>
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

ItemsControl試圖變得有趣

我發現類似的問題可以追溯到2010年,但是到目前為止,所有解決方案都沒有起作用。 我還發現此處報告的普遍用於UWP Grid的問題已在其他上下文中使用。 我嘗試過使用ListBox(在這方面的行為相同),設置Horizo​​ntalContentAlignment,使用樣式,因為Silverlight用戶似乎在這樣做時感到很高興,並且更改了我表達ItemsControl的方式。 到目前為止,沒有任何工作,而且我感覺UWP中的XAML出了點問題,因為我似乎在WPF中完全沒有遇到任何問題。 是否存在已知問題,還是我只是以錯誤的方式進行操作?

我只是希望子網格可以拉伸以水平填充。 我應該提一下:

  1. 如果將網格包裝在ViewBox中,它的確起作用,但是這是不理想的,因為它還有其他不利影響。

  2. 如果我單擊XAML中層次結構下的所有內容(從ItemsControl開始),則圍繞此選擇呈現的框將一直保持全寬,直到(不包括)DataTemplate。 DataTemplate和Grid顯示一個緊密綁定的框,但是如果我在屬性檢查器中查看,則Grid的水平對齊方式是拉伸。 這使我相信DataTemplate用沒有Horizo​​ntalAlignment =“ Stretch”的東西包裝了網格,並且我不知道改變它的機制。

這種現象似乎只出現在Visual Studio和Expression Blend的設計器中。 一旦在Phone和Desktop上構建並執行,所有內容似乎都可以正確呈現。

我通常在設計師方面有很好的經驗,沒想到會是這種情況。 如果我只是忽略了設計師並取得了進步,我會早日意識到這一點。 我已經通過VisualStudio反饋工具報告了此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM