Example #1
0
 //  建構子,傳入按鈕所附帶的工具模式, 按鈕正常狀態的圖片URI, 按鈕被點選狀態的URI
 public ToolButton(BaseUMLMode _Mode, Uri _uri1, Uri _uri2)
     : base()
 {
     Mode = _Mode;
     uri1 = _uri1;
     uri2 = _uri2;
     setSelected(false);
 }
 //Add new tool to toolsbox
 public void AddTool(BaseUMLMode Mode, Uri icon1, Uri icon2, ToolBar location)
 {
     ToolButton UIButton = new Controls.ToolButton(Mode, icon1, icon2);
     UIButton.AddHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler(ToolsButton_MouseLeftButtonDown), true);
     UIButton.AddHandler(MouseEnterEvent, new MouseEventHandler(ToolsButton_MouseEnter), true);
     UIButton.AddHandler(MouseLeaveEvent, new MouseEventHandler(ToolsPanel_MouseEnter), true);
     location.Items.Add(UIButton);
     Buttons.Add(UIButton);
 }
Example #3
0
 /* Constructor */
 public MainPanel()
     : base()
 {
     /* 由於WPF架構中背景為NULL不能觸發任何事件,所以要將透明色填入背景 */
     BrushConverter bc = new BrushConverter();
     this.Background = (Brush)bc.ConvertFrom("Transparent");
     /* 建立前景繪圖區域,用來繪製移動,選取等等滑鼠操作的特效 */
     Foreground = new DrawingGroup();
     UMLShapes = new List<BaseUMLShape>();
     /* MVC架構,把自身的滑鼠事件(V)全權交由封裝的CoreMouseEventProcessor事件處理器(C)來分析 */
     EventProcessor = new CoreMouseEventProcessor(this);
     /* MVC架構,當CoreMouseEventProcessor(C)分析完之後自動觸發下面的函式,並將自定義的事件參數送入函式(V) */
     EventProcessor.MouseEvent += EventProcessor_MouseEvent;
     /* 透過多型將Mode設為None_Mode(無任何動作),需要傳入本身的ref來讓Mode的子類別來取得MainPanel持有的相關資訊 */
     Mode = new None_Mode(this);
 }
 public ModeChangeEventArgs(BaseUMLMode m)
 {
     Mode = m;
 }
Example #5
0
 /* 用來設定Mode,此部分為多型,可以傳入任何BaseUMLMode的子類別,並都過多型來展現其功能 */
 public void setMode(BaseUMLMode _Mode)
 {
     Mode = _Mode;
 }