示例#1
0
文件: Theme.cs 项目: se7ensoft/dnSpy
 public override IEnumerable<Tuple<object, object>> GetResourceKeyValues(MyHighlightingColor hlColor)
 {
     if (ForegroundResourceKey != null) {
         Debug.Assert(hlColor.Foreground != null);
         if (ForegroundOpacity == null)
             yield return new Tuple<object, object>(ForegroundResourceKey, hlColor.Foreground.GetBrush(null));
         else {
             var color = hlColor.Foreground.GetColor(null).Value;
             var brush = new SolidColorBrush(color) { Opacity = ForegroundOpacity.Value };
             yield return new Tuple<object, object>(ForegroundResourceKey, brush);
         }
     }
     if (BackgroundResourceKey != null) {
         Debug.Assert(hlColor.Background != null);
         if (BackgroundOpacity == null)
             yield return new Tuple<object, object>(BackgroundResourceKey, hlColor.Background.GetBrush(null));
         else {
             var color = hlColor.Background.GetColor(null).Value;
             var brush = new SolidColorBrush(color) { Opacity = BackgroundOpacity.Value };
             yield return new Tuple<object, object>(BackgroundResourceKey, brush);
         }
     }
 }
示例#2
0
文件: Theme.cs 项目: se7ensoft/dnSpy
 public override IEnumerable<Tuple<object, object>> GetResourceKeyValues(MyHighlightingColor hlColor)
 {
     var br = new RadialGradientBrush() {
         RadiusX = 1,
         RadiusY = 1,
     };
     if (RelativeTransform != null)
         br.RelativeTransform = RelativeTransform;
     if (Center != null)
         br.Center = Center.Value;
     if (GradientOrigin != null)
         br.GradientOrigin = GradientOrigin.Value;
     if (RadiusX != null)
         br.RadiusX = RadiusX.Value;
     if (RadiusY != null)
         br.RadiusY = RadiusY.Value;
     if (Opacity != null)
         br.Opacity = Opacity.Value;
     for (int i = 0; i < GradientOffsets.Length; i++)
         br.GradientStops.Add(new GradientStop(((SolidColorBrush)hlColor.GetHighlightingBrush(i).GetBrush(null)).Color, GradientOffsets[i]));
     br.Freeze();
     yield return new Tuple<object, object>(ResourceKey, br);
 }
示例#3
0
文件: Theme.cs 项目: se7ensoft/dnSpy
        MyHighlightingColor ReadColor(XElement color, ref ColorType colorType)
        {
            var name = color.Attribute("name");
            if (name == null)
                return null;
            colorType = ToColorType(name.Value);
            if (colorType == ColorType.Last)
                return null;

            var colorInfo = colorInfos[(int)colorType];

            var hl = new MyHighlightingColor();
            hl.Name = colorType.ToString();

            var fg = GetAttribute(color, "fg", colorInfo.DefaultForeground);
            if (fg != null)
                hl.Foreground = CreateColor(fg);

            var bg = GetAttribute(color, "bg", colorInfo.DefaultBackground);
            if (bg != null)
                hl.Background = CreateColor(bg);

            var color3 = GetAttribute(color, "color3", colorInfo.DefaultColor3);
            if (color3 != null)
                hl.Color3 = CreateColor(color3);

            var color4 = GetAttribute(color, "color4", colorInfo.DefaultColor4);
            if (color4 != null)
                hl.Color4 = CreateColor(color4);

            var italics = color.Attribute("italics") ?? color.Attribute("italic");
            if (italics != null)
                hl.FontStyle = (bool)italics ? FontStyles.Italic : FontStyles.Normal;

            var bold = color.Attribute("bold");
            if (bold != null)
                hl.FontWeight = (bool)bold ? FontWeights.Bold : FontWeights.Normal;

            return hl;
        }
示例#4
0
文件: Theme.cs 项目: se7ensoft/dnSpy
 public override IEnumerable<Tuple<object, object>> GetResourceKeyValues(MyHighlightingColor hlColor)
 {
     var br = new LinearGradientBrush() {
         StartPoint = StartPoint,
         EndPoint = EndPoint,
     };
     if (MappingMode != null)
         br.MappingMode = MappingMode.Value;
     for (int i = 0; i < GradientOffsets.Length; i++)
         br.GradientStops.Add(new GradientStop(((SolidColorBrush)hlColor.GetHighlightingBrush(i).GetBrush(null)).Color, GradientOffsets[i]));
     br.Freeze();
     yield return new Tuple<object, object>(ResourceKey, br);
 }
示例#5
0
文件: Theme.cs 项目: se7ensoft/dnSpy
        MyHighlightingColor CreateHighlightingColor(ColorType colorType)
        {
            var hl = new MyHighlightingColor { Name = colorType.ToString() };

            var colorInfo = colorInfos[(int)colorType];

            if (colorInfo.DefaultForeground != null)
                hl.Foreground = CreateColor(colorInfo.DefaultForeground);

            if (colorInfo.DefaultBackground != null)
                hl.Background = CreateColor(colorInfo.DefaultBackground);

            if (colorInfo.DefaultColor3 != null)
                hl.Color3 = CreateColor(colorInfo.DefaultColor3);

            if (colorInfo.DefaultColor4 != null)
                hl.Color4 = CreateColor(colorInfo.DefaultColor4);

            return hl;
        }
示例#6
0
文件: Theme.cs 项目: se7ensoft/dnSpy
 public abstract IEnumerable<Tuple<object, object>> GetResourceKeyValues(MyHighlightingColor hlColor);
示例#7
0
文件: Theme.cs 项目: se7ensoft/dnSpy
 public override IEnumerable<Tuple<object, object>> GetResourceKeyValues(MyHighlightingColor hlColor)
 {
     if (ForegroundResourceKey != null) {
         Debug.Assert(hlColor.Foreground != null);
         yield return new Tuple<object, object>(ForegroundResourceKey, ((SolidColorBrush)hlColor.Foreground.GetBrush(null)).Color);
     }
     if (BackgroundResourceKey != null) {
         Debug.Assert(hlColor.Background != null);
         yield return new Tuple<object, object>(BackgroundResourceKey, ((SolidColorBrush)hlColor.Background.GetBrush(null)).Color);
     }
 }