C# 头像联系人图像如何使用随机彩色UWP动态显示用户配置文件图像和姓氏?

C# 头像联系人图像如何使用随机彩色UWP动态显示用户配置文件图像和姓氏?,c#,uwp,avatar,uwp-xaml,avatars,C#,Uwp,Avatar,Uwp Xaml,Avatars,我在为联系人列表写阿凡达。设计是这样的,如果我能得到联系人的图像,我就会显示图像。若并没有,我需要用随机颜色显示姓氏的大写字母。我知道如何显示圆形图像 <Button> <Button.Content> <Ellipse> <Ellipse.Fill> <ImageBrush ImageSource="{Binding Image}"/>

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

<Button>
    <Button.Content>
        <Ellipse>
             <Ellipse.Fill>
                 <ImageBrush ImageSource="{Binding Image}"/>
             </Ellipse.Fill>
         </Ellipse>
     </Button.Content>
</Button>


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

您可以一直使用代码生成所需的图像,但这可能会变得不必要的复杂

我建议采取更简单的办法

<Button>
    <Button.Content>       
        <Grid>
            <Ellipse Fill="{x:Bind FillBrush}"/>
            <TextBlock Text="{x:Bind Initials}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Grid>
     </Button.Content>
</Button>
还有一些逻辑来说明如何填充这些属性。如果有图像,请将Initials属性保留为空,并将FillBrush设置为ImageBrush。如果没有图像,请将FillBrush设置为使用随机颜色初始化的新SolidColorBrush,并将初始值设置为正确的值

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

**如果您可以仅生成随机背景色来处理为TextBlock选择的任何前景,或者根据所需的设计,根据随机背景色选择白色或黑色前景,则可以获得额外的积分


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

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

我建议采取更简单的办法

<Button>
    <Button.Content>       
        <Grid>
            <Ellipse Fill="{x:Bind FillBrush}"/>
            <TextBlock Text="{x:Bind Initials}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Grid>
     </Button.Content>
</Button>
还有一些逻辑来说明如何填充这些属性。如果有图像,请将Initials属性保留为空,并将FillBrush设置为ImageBrush。如果没有图像,请将FillBrush设置为使用随机颜色初始化的新SolidColorBrush,并将初始值设置为正确的值

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

**如果您可以仅生成随机背景色来处理为TextBlock选择的任何前景,或者根据所需的设计,根据随机背景色选择白色或黑色前景,则可以获得额外的积分


我认为这比在您还没有图像的情况下生成图像更容易编码和维护,并且在运行时速度更快。

谢谢!它工作得很好!我在笔刷中添加了一些条件代码。非常感谢。谢谢它工作得很好!我在笔刷中添加了一些条件代码。非常感谢。