2016-06-08 1 views
0

연락처 목록에 대해 아바타를 쓰고 있습니다. 연락처의 이미지를 얻을 수 있으면 이미지를 표시 할 수있는 디자인입니다. 그렇지 않다면 성의 대문자를 임의의 색상으로 표시해야합니다. 나는 이미지없는 사람들을 표시 할 방향이 무엇인지 궁금하네요아바타 연락처 이미지 동적으로 사용자 프로필 이미지와 임의의 색 UWP로 성을 표시하는 방법?

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

라운드 이미지를 표시하는 방법을 알고 나는 마지막 이름의 편지를 표시하고 임의의 색상으로 타원을 기입해야합니다. 내 아이디어는 Image getter에서 어떤 조건 코드를 써서 무엇을 표시할지 결정하는 것입니다. 하지만 주어진 문자와 임의의 색상으로 이미지를 만드는 법.

답변

2

코드에서 필요한 이미지를 생성 할 수 있지만 불필요하게 복잡해질 수 있습니다. 이러한 속성을 채우는 방법을 알아낼

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

그리고 어떤 논리 :

나는 당신의 ViewModel에서 간단한 방법

<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로 설정하고 Intial을 올바른 값으로 설정합니다.

* 물론 TextBlock에 적절한 스타일을 설정하고 ViewModel에서 적절한 NotifyPropertyChanged 이벤트를 발생시켜야합니다.

** TextBlock에 대해 선택한 전경에서 작동하는 임의의 배경색 만 생성하거나 원하는 디자인에 따라 임의의 배경색을 기반으로 흰색 또는 검정색 전경색을 선택할 수있는 보너스 포인트.

코드 작성 및 유지 관리가 훨씬 쉬우 며 이미 런타임에 이미지를 생성하는 것보다 런타임이 빠를 것이라고 생각합니다.

+0

고마워요! 완벽하게 작동했습니다! 브러시 안에 조건부 코드를 추가했습니다. 고맙습니다! – litaoshen

관련 문제