WinRT/Windows Phone 8.1 应用中基于文本的头像

Text based avatar in WinRT/Windows Phone 8.1 app

我正在研究 Windows Phone 8.1 和 WinRT、UWP。现在我想创建一个成员列表。对于列表视图中的每个项目,包含成员的姓名和圈子头像。默认头像是圆形图像,颜色随机,文字基于他们的名字,或者他们可以上传自己的照片。我不知道如何生成这个。我可以在 Windows 表单上执行此操作,并且我是 Windows Phone/WinRT/UWP 的初学者。如何创建这样的头像?

所以我以前没有做过这样的事情,但我试了一下,这是我想出的:

XAML 是一个神奇的东西,我喜欢的功能之一是 "ValueConverters"。这些 类 实现了 "IValueConverter" 接口并允许 XAML 将值转换为不同的外观。

在此示例中,我使用 ValueConverters 生成随机数并获取每个名称的第一个字母。

步骤如下:

  • 创建 NameToInitialConverter:此转换器接受一个字符串,returns 仅获取其中的第一个字符:

    • 创建 RandomColorGeneratorConverter:这个转换器是假的,但用于生成随机颜色:

    • 现在在您的 XAML 页面中,添加您刚刚构建的转换器作为页面资源:

    <Page.Resources> <local:NameToInitialConverter x:Name="NameToInitialConverter" /> <local:NameToColorConverter x:Name="NameToColorConverter" /> </Page.Resources>

    • 然后使用 DataTemplate 创建自定义列表视图项:

</p> <pre><code> <ListView ItemsSource="{x:Bind Path=Names}"> <ListView.ItemTemplate> <DataTemplate x:DataType="x:String"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Ellipse Width="96" Height="96" Fill="{x:Bind Converter={StaticResource NameToColorConverter}}" /> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="45" Foreground="White" Text="{x:Bind Converter={StaticResource NameToInitialConverter}}" /> <TextBlock Grid.Column="1" Margin="8" VerticalAlignment="Center" FontSize="32" Text="{x:Bind}" /> </Grid> </DataTemplate> </ListView.ItemTemplate> </ListView>

希望这可以帮助您构建您想要的 UI。