【发布时间】:2020-03-17 11:38:07
【问题描述】:
我有这个代码:
<ContentPage.Content>
<StackLayout HorizontalOptions="Fill" Padding="15">
<Frame IsClippedToBounds="True" HeightRequest="45" CornerRadius="5" Padding="0" BackgroundColor="Transparent">
<Entry Placeholder="Search" ReturnType="Done" PlaceholderColor="Gray" x:Name="txtSearch" Margin="5,0,0,0" TextColor="White" />
</Frame>
<CollectionView ItemsSource="{Binding sourceList}">
<CollectionView.ItemsLayout>
<GridItemsLayout Orientation="Vertical"
Span="2" />
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate>
<ff:CachedImage
Source="{Binding Source}"
VerticalOptions="Center"
HorizontalOptions="Fill"
x:Name="TemplateImage" />
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</StackLayout>
</ContentPage.Content>
现在我希望我能做到:
public TemplateList()
{
InitializeComponent();
var mainDisplayInfo = DeviceDisplay.MainDisplayInfo;
var width = mainDisplayInfo.Width;
var density = mainDisplayInfo.Density;
var ScaledWidth = width / density;
var WidthHeight = (ScaledWidth - (3 * 10)) / 2;
SizeChanged += (s, a) =>
{
TemplateImage.HeightRequest = WidthHeight;
TemplateImage.WidthRequest = WidthHeight;
};
}
但我得到一个错误:
名称
TemplateImage在当前上下文中不存在
现在我已经在我的 xaml 中用这一行声明了它:
<ff:CachedImage
Source="{Binding Source}"
VerticalOptions="Center"
HorizontalOptions="Fill"
x:Name="TemplateImage" />
现在如何在 C# 中更改 CachedImage 的大小?
【问题讨论】:
-
我会使用 DataBinding 将 CachedImage 的 WidthRequest 和 HeightRequest 绑定到您作为 ItemsSource 引用的集合中的数据对象。
标签: c# xamarin xamarin.forms xamarin.android xamarin.ios