private void UpdatePathData() { var key = PathIcon.GetIcon(this); if (string.IsNullOrEmpty(key)) { key = "path_ay"; } PathData = PathIcon.Instance.GetIconFromXml(key); }
private static PathIcon CreateInstance() { if (_Singleton == null) { lock (_Lock) { if (_Singleton == null) { _Singleton = new PathIcon(); } } } return(_Singleton); }
public void LoadIcon() { //判断Icon方式 if (!string.IsNullOrEmpty(Icon)) { string ext = System.IO.Path.GetExtension(Icon); if (ext == "") { //<control:AyStrokeLabel Text="" Style="{StaticResource FontAwesome}" Fill="Yellow" Stroke="Black" StrokeThickness="0.3" FontWeight="Bold" FontSize="50"/> if (Icon.IndexOf("fa_") == 0 || Icon.IndexOf("fa-") == 0) { if (IsFontStrokeLabel) { tb = new AyStrokeLabel { VerticalAlignment = VerticalAlignment.Center, Stroke = Stroke, StrokeThickness = StrokeThickness, FontWeight = FontWeight, FontStretch = FontStretch, FontStyle = FontStyle, UseLayoutRounding = true }; Binding bindingFont = new Binding { Path = new PropertyPath("FontSize"), Source = this, Mode = BindingMode.TwoWay }; tblock.SetBinding(TextBlock.FontSizeProperty, bindingFont); //设置绑定 Binding binding = new Binding { Path = new PropertyPath("Foreground"), Source = this, Mode = BindingMode.TwoWay }; tb.SetBinding(AyStrokeLabel.FillProperty, binding); tb.Style = Application.Current.TryFindResource("FontAwesome") as Style; Icon = Icon.Replace(" ", "").Replace("-", "_"); tb.Text = FontAweSomeHelper.GetUnicode(Icon); //tb.Text = ""; this.Content = tb; } else { tblock = new TextBlock { VerticalAlignment = VerticalAlignment.Center, FontWeight = FontWeight, FontStretch = FontStretch, FontStyle = FontStyle, UseLayoutRounding = true }; Binding bindingFont = new Binding { Path = new PropertyPath("FontSize"), Source = this, Mode = BindingMode.TwoWay }; tblock.SetBinding(TextBlock.FontSizeProperty, bindingFont); //设置绑定 Binding binding = new Binding { Path = new PropertyPath("Foreground"), Source = this, Mode = BindingMode.TwoWay }; tblock.SetBinding(TextBlock.ForegroundProperty, binding); tblock.Style = Application.Current.TryFindResource("FontAwesome") as Style; Icon = Icon.Replace(" ", "").Replace("-", "_"); tblock.Text = FontAweSomeHelper.GetUnicode(Icon); this.Content = tblock; } IconType = AyIconAllType.Font; } else if (Icon.IndexOf("path_") == 0) { //2015-5-27 16:57:15 联系qq 875556003 更新,改为性能更好的path btn1 = new AyPath { SnapsToDevicePixels = true, VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch, //PathStrokeBrush = Stroke, //Foreground=Foreground, //PathStrokeThickness = StrokeThickness, Stretch = Stretch, UseLayoutRounding = true }; PathIcon.SetIcon(btn1, Icon); //设置绑定 Binding binding = new Binding { Path = new PropertyPath("Foreground"), Source = this, Mode = BindingMode.TwoWay }; btn1.SetBinding(AyPath.ForegroundProperty, binding); Binding binding2 = new Binding { Path = new PropertyPath("Stroke"), Source = this, Mode = BindingMode.TwoWay }; btn1.SetBinding(AyPath.PathStrokeBrushProperty, binding2); Binding binding3 = new Binding { Path = new PropertyPath("StrokeThickness"), Source = this, Mode = BindingMode.TwoWay }; btn1.SetBinding(AyPath.PathStrokeThicknessProperty, binding3); this.Content = btn1; IconType = AyIconAllType.Path; } else if (Icon.IndexOf("more_") == 0) { this.Content = GetMoreIcon(); IconType = AyIconAllType.More; } } else if (ext == ".gif") { try { imageGif = new AyGifControl { Width = this.Width, Height = this.Height, VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch, Stretch = ImageStretch }; imageGif.InitControl(Icon); imageGif.StartAnimate(); this.Content = imageGif; IconType = AyIconAllType.Gif; } catch { //AyMessageBox.ShowError(ex.Message); } } else { try { if (IsBitmapImage) { AyImage image = new AyImage(); this.IsBitmapImage = false; if (Icon.IndexOf("pack://") == 0) { } image.Source = new BitmapImage(new Uri(Icon, UriKind.RelativeOrAbsolute)); this.Content = image; } else { Image image = new Image { VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch, Stretch = ImageStretch }; image.UseLayoutRounding = true; if (Icon.IndexOf("pack://") == 0) { } image.Source = new BitmapImage(new Uri(Icon, UriKind.RelativeOrAbsolute)); this.Content = image; } IconType = AyIconAllType.Image; } catch (Exception ex) { throw new Exception("文件格式不正确" + ex.Message); } } } }