private static void NameDisplayModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { UserCtrlFriendItem fi = d as UserCtrlFriendItem; fi.NameDisplayMode = (NameDisplayMode)e.NewValue; fi.SetDisplayMode(fi, fi.NickName, fi.Remarks, fi.NameDisplayMode); }
private static void OnIconUriChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { UserCtrlFriendItem friendItem = d as UserCtrlFriendItem; if (e.NewValue != e.OldValue) { SetIconImageSource(friendItem, e.NewValue.ToString()); } }
void SetDisplayMode(UserCtrlFriendItem fi, string nickName, string remarks, NameDisplayMode nameDisplayMode) { if (nameDisplayMode == NameDisplayMode.NickName || string.IsNullOrEmpty(remarks)) { fi.CtrlNickName.Visibility = Visibility.Visible; if (fi.IsVip) { fi.CtrlNickName.Foreground = new SolidColorBrush(Colors.Red); } else { fi.CtrlNickName.Foreground = new SolidColorBrush(Colors.Black); } fi.CtrlRemarks.Visibility = Visibility.Collapsed; } else if (nameDisplayMode == NameDisplayMode.Remarks) { fi.CtrlNickName.Visibility = Visibility.Collapsed; fi.CtrlRemarks.Visibility = Visibility.Visible; if (fi.IsVip) { fi.CtrlRemarks.Foreground = new SolidColorBrush(Colors.Red); } else { fi.CtrlRemarks.Foreground = new SolidColorBrush(Colors.Black); } fi.CtrlRemarks.SetBinding(TextBlock.TextProperty, new Binding("Remarks") { Source = fi }); } else if (nameDisplayMode == (NameDisplayMode.NameAndNickName)) { fi.CtrlNickName.Visibility = Visibility.Visible; if (fi.IsVip) { fi.CtrlNickName.Foreground = new SolidColorBrush(Colors.Red); } else { fi.CtrlNickName.Foreground = new SolidColorBrush(Colors.Black); } fi.CtrlRemarks.Visibility = Visibility.Visible; fi.CtrlRemarks.SetBinding(TextBlock.TextProperty, new Binding("Remarks") { Source = fi, StringFormat = "({0})" }); } }
private static void SetIconImageSource(UserCtrlFriendItem friendItem, string value) { BitmapImage image = new BitmapImage(); image.BeginInit(); image.UriSource = new System.Uri(value); image.DecodePixelWidth = (int)friendItem.IconSize.Width; image.DecodePixelHeight = (int)friendItem.IconSize.Height; image.EndInit(); image.Freeze(); friendItem.IconPath = image; }