2013-11-04 116 views
0

這裏是我用來綁定包含體系結構圖像的項目列表的一些XAML代碼。我的圖像顯示正確,但不填充ListViewItem的寬度,儘管高度填充正確。我的圖像也是方形的,所以我知道這不會發生,因爲圖像沒有明顯的扭曲。ListViewItem內容沒有填充寬度

另外,我注意到ListViewItem有一個淺灰色的背景色,它應該是透明的,或者是null/none。

任何人有任何想法如何獲得約束力嗎?

   <ListView x:Name="listView_Architecture" SelectionMode="Single" ScrollViewer.VerticalScrollBarVisibility="Disabled" VerticalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Visible" HorizontalContentAlignment="Stretch" SelectionChanged="listView_Architecture_SelectionChanged"> 
        <ListView.ItemsPanel> 
         <ItemsPanelTemplate> 
          <StackPanel Orientation="Horizontal"/> 
         </ItemsPanelTemplate> 
        </ListView.ItemsPanel> 
        <ListView.ItemContainerStyle> 
         <Style TargetType="{x:Type ListViewItem}"> 
          <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
          <Style.Triggers> 
           <DataTrigger Binding="{Binding IsVisible}" Value="True"> 
            <Setter Property="Visibility" Value="Visible" /> 
           </DataTrigger> 
           <DataTrigger Binding="{Binding IsVisible}" Value="False"> 
            <Setter Property="Visibility" Value="Collapsed" /> 
           </DataTrigger> 
           <DataTrigger Binding="{Binding IsSelected, Mode=TwoWay}" Value="True"> 
            <Setter Property="IsSelected" Value="True" /> 
           </DataTrigger> 
           <DataTrigger Binding="{Binding IsSelected, Mode=TwoWay}" Value="False"> 
            <Setter Property="IsSelected" Value="False" /> 
           </DataTrigger> 
          </Style.Triggers> 
         </Style> 
        </ListView.ItemContainerStyle> 
        <ListView.View> 
         <GridView AllowsColumnReorder="False"> 
          <GridView.ColumnHeaderContainerStyle> 
           <Style TargetType="{x:Type GridViewColumnHeader}"> 
            <Setter Property="Visibility" Value="Collapsed"/> 
           </Style> 
          </GridView.ColumnHeaderContainerStyle> 
          <GridViewColumn> 
           <GridViewColumn.CellTemplate> 
            <DataTemplate> 
             <Image Stretch="Fill" Source="{Binding SetupImage, Converter={StaticResource ImageToSourceConverter}}"/> 
            </DataTemplate> 
           </GridViewColumn.CellTemplate> 
          </GridViewColumn> 
         </GridView> 
        </ListView.View> 
       </ListView> 
+0

你可以在這裏粘貼快照,它是什麼樣的UI顯示? –

+0

您是否嘗試過將ListViewItem樣式的Horizo​​ntalAlignment設置爲「Stretch」? –

回答

0

很難理解你在那裏問的是什麼。

你首先提到圖像不適合完整的大小,然後你跳到灰色背景thingy,然後你最終談論綁定。究竟是什麼問題?

我會爲您解答第一個問題。其他人很容易,我想你會自己找到答案。在Visual Studio中綁定aint和難以理解的輸入窗口會給你提供關於Bindings中你做了什麼錯誤的所有信息。

圖像沒有佔用所有可用空間的原因是因爲圖像不知道如何那裏有很多空間。

當正在測量ListView並且正在排列子項時,它將計算並設置子項的高度值,以便孩子知道高度,但不會爲每個子項設置寬度。因此,您的圖像無法找到祖先以接收可用的寬度,因此它不知道要拉伸的寬度值是多少,因此它將以正常大小顯示,因爲這是默認值,當沒有其他人發現時。

如果您希望測試此行爲,只需在ListViewItem的樣式中設置固定寬度值。如果將值設置爲200像素,則圖像將被拉伸至200的寬度。儘管未設置任何寬度,但Image沒有找到值來知道如何拉伸自身的值。

那麼容易。 :)