如何在Xamarin中修复“ ListView中的背景图像”?

时间:2019-07-25 10:27:03

标签: c# xaml xamarin

我尝试为每个listView元素使用图像创建不同的背景。我的问题是如何用完整图片填充此位置(开头的图标除外),而不在其中移动任何当前元素。

不带背景的布局-https://imgur.com/q6YQioN

我尝试将“方面”等用于“相对布局”和“网格布局”,但结果如下:

我的尝试-https://imgur.com/itIuKuY

<ListView x:Name="deckListView"
          RowHeight="50"
          ItemSelected="DeckListView_ItemSelected"
          Margin="5, 0, 10, 0">

    <ListView.ItemTemplate>

        <DataTemplate>

            <ViewCell>

                <StackLayout Orientation="Horizontal" >
                    <Image >
                        <Image.Source>
                            <UriImageSource Uri="{Binding ImageSource}"
                                CachingEnabled="True"
                                 CacheValidity="14"/>
                        </Image.Source>
                    </Image>

                    <!-- BG IMG-->
                    <RelativeLayout >
                    <Image Aspect="AspectFill" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" > 
                        <Image.Source>
                                <UriImageSource Uri="https://vignette.wikia.nocookie.net/wiedzmin/images/d/d7/G_SS_Kr%C3%B3l_Foltest.jpg/revision/latest?cb=20180317231055"/>
                        </Image.Source>
                    </Image>

                        <!-- LIST VIEW ELEMENT-->
                    <StackLayout Orientation="Vertical" >
                        <Label Text="{Binding NameDeck}"

                            FontSize="Medium"/>
                        <Label Text="{Binding Fraction}"/>
                    </StackLayout>

                        <StackLayout Orientation="Horizontal"
                                 HorizontalOptions="EndAndExpand">
                            <Label Text="{Binding Win}"
                               TextColor="Green"
                               FontSize="Medium"
                               Style="{StaticResource bottomLabel}"/>

                            <Label Text=":" 
                               Style="{StaticResource bottomLabel}"
                               FontSize="Small"
                               Margin="0,0,0,5"/>

                            <Label Text="{Binding Lose}"
                               TextColor="Red"
                               FontSize="Medium"
                               Style="{StaticResource bottomLabel}"/>

                            <Label x:Name="winRatio"
                               VerticalOptions="Center"
                               Text="{Binding WinRatio, StringFormat='{0}%'}"
                               FontSize="Large"/>
                        </StackLayout>
                    </RelativeLayout>
                </StackLayout>
            </ViewCell>

        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

如果我忘记要粘贴的内容,我感到很抱歉。

1 个答案:

答案 0 :(得分:0)

您可以在Xamarin Forums discussion中检查杰森的答案。

他展示了如何使用基本的AbsoluteLayout执行相同的操作...

data       date               name          time     timemillis
0       18.7.2019  Player is loading  18:31:03,580  1563467463580
1    5  18.7.2019   Player is loaded  18:31:03,668  1563467463668