阿凡达联系人图像如何使用随机颜色UWP动态显示用户个人资料图像和姓氏?

时间:2016-06-08 17:53:48

标签: c# uwp avatar uwp-xaml avatars

我正在为联系人列表撰写“阿凡达”。设计是这样的,如果我能得到联系人的图像,那么我就会显示图像。如果不是,我需要用随机颜色显示姓氏的大写字母。我知道如何显示圆形图像

<item X="14-03-04-SEC_Exempt_Reporting_Adviser_Report_2014-3-4"
         DATE="2014-03-04"
         TYPE="XLSX"
         CRD="170562"
         PRIMARYNAME="LAUNCH ANGELS"
         LEGALNAME=""
         STATE="MA"
         COUNTRY="US"/>

我想知道显示那些没有图像的方向是什么,我必须显示姓氏字母并用随机颜色填充椭圆。我的想法是在Image的getter中编写一些条件代码来决定要显示的内容。但是如何用给定的字母和随机颜色制作图像。

1 个答案:

答案 0 :(得分:2)

您可以随时继续在代码中生成所需的图像,但这可能会造成不必要的复杂。

我建议采用更简单的方法

public Brush FillBrush { get; set; }
public string Initials { get; set; }

在你的ViewModel中你会有这样的东西:

my_name@project_name:~$

以及如何填充这些属性的一些逻辑。如果您有图像,请将Initials属性保留为空并将FillBrush设置为ImageBrush。如果您没有图像,请将FillBrush设置为使用随机颜色初始化的新SolidColorBrush,并将Intials设置为正确的值。

*您当然需要为TextBlock设置正确的样式,并在ViewModel中引发正确的NotifyPropertyChanged事件。

**如果您可以生成随机背景颜色,可以使用您为TextBlock选择的任何前景,或者根据所需的设计,选择白色或黑色前景,基于随机背景颜色,可以获得奖励积分。

我认为这比编码和维护更容易,并且在运行时比在没有图像时生成图像更快。