程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> BilinearGradientBrushExtension, custom brush in WPF using MarkupExtension instead

BilinearGradientBrushExtension, custom brush in WPF using MarkupExtension instead

編輯:.NET實例教程

WPF的類庫現在鎖死不讓繼承實現自定義的Brush,因為基類的brush含有抽象而且是internal的一些函數,像internal abstract System.Windows.Media.Composition.DUCE.ResourceHandle AddRefOnChannelCore(System.Windows.Media.Composition.DUCE.Channel channel),就沒法繼承實現,而且一般的DrawingBrush, ImageBrush都是sealed。而我這次需要一個相當於2維的GradIEntBrush一樣的東西來實現傳入一個顏色矩陣,畫出一副ColorMap的東西。因為直接從brush繼承設置想直接從imagesource繼承都不可能,只好用MarkupExtension的方法繞:



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Markup;
using System.Windows.Media.Imaging;
using System.Windows.Media;
using System.Windows;
using System.Windows.Media.Animation;
using System.ComponentModel;


    [MarkupExtensionReturnType(typeof(Brush))]
    class BilinearGradIEntBrushExtension:MarkupExtension,INotifyPropertyChanged
    {
        List<Color> colorMatrix = new List
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved