第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用windows窗體創(chuàng)建和連接帶有行的自定義用戶按鈕/控件

如何使用windows窗體創(chuàng)建和連接帶有行的自定義用戶按鈕/控件

C#
牛魔王的故事 2019-07-09 15:00:42
如何使用windows窗體創(chuàng)建和連接帶有行的自定義用戶按鈕/控件我正在嘗試創(chuàng)建一些自定義按鈕或用戶控件,如建議的GUI中所示。功能如下:圖形或配置是以圖形方式創(chuàng)建的。這些控件可以從工具欄中拖動,也可以通過鼠標(biāo)右鍵單擊/下拉插入。通過從一個控件拖動到另一個控件,它們應(yīng)該通過線路連接。切換應(yīng)該將視圖從帶有選項的控件轉(zhuǎn)移到簡單的視圖。gui視圖-帶有選項的控件:Gui視圖-最小化:在Windows窗體中可以使用哪些功能來創(chuàng)建連接線?如果它們是通過使用功能繪制線條創(chuàng)建的,那么如何確??丶c行相一致?我正在用VisualStudio 2010 Express用C#編程。
查看完整描述

3 回答

?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗 獲得超2個贊

好的。這是對我創(chuàng)建的示例的輕微修改。類似的要求

我的意圖是表明WinForms不再是任何需要嚴(yán)肅UI的人的選擇。最初的樣本是在3個人小時內(nèi)完成的。

您可能會驚訝地知道,包含所有這些項(節(jié)點和連接器)的容器實際上是一個ListBox.

值得注意的事情:

  • “NodeXX”文本包含在

    Thumb

    控件,該控件支持單擊和拖動。
  • 連接器也可以選擇,并顯示一個很好的動畫,當(dāng)他們是。
  • 左面板允許當(dāng)前選定對象的值的版本。
  • UI的功能與包含它的數(shù)據(jù)完全解耦。因此,所有這些節(jié)點和連接器都是簡單的類。

    int

    double

    可以從DB或其他數(shù)據(jù)源加載/保存的屬性。
  • 如果您不喜歡單擊序列的完成方式,請繪制節(jié)點和連接器,這可以完全適應(yīng)您的需要。
  • WPF規(guī)則。

編輯:

第二個版本,這一次更像你原來的截圖

  • 我加入了

    SnapSpot

    進入等式。這些是你在節(jié)點周圍看到的紅色半圓,實際上是

    Connector

    我們被綁在一起。
  • 我還更改了ConnectorDataTemplate使用QuadraticBezierSegment基于

    Connector.Start.Location,Connector.MidPoint, and 
    Connector.End.Location

這使得曲線可以用作連接器,而不僅僅是直線。

  • 有一個小紅方形

    Thumb

    當(dāng)您選擇(單擊)在

    Connector

    ,(在屏幕截圖中可見),它將允許您移動

    MidPoint

    曲線。
  • 您還可以通過滾動鼠標(biāo)輪來操作該值。

    TextBoxes

    在左側(cè)面板的“中間點”下。
  • “崩塌一切”

    CheckBox

    允許在大小框之間切換,如屏幕截圖所示。
  • 這個

    SnapSpot

    我們有一個

    OffsetX OffsetY

    在0到1之間,對應(yīng)于它們相對于父級的位置。

    Node

    ..這些不限于4個,實際上可能是每個

    Node.

  • 這個

    ComboBoxes

    Buttons

    沒有功能,但這只是創(chuàng)建相關(guān)屬性和

    命令

    Node

    類并將它們綁定到該類。

編輯2:

更新的下載鏈接與一個更好的版本。

因為很多人似乎對此很感興趣,所以我把消息來源上傳到GitHub.


查看完整回答
反對 回復(fù) 2019-07-09
?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗 獲得超6個贊

我猜這是一個圖型問題。節(jié)點是房間,邊緣是連接房間的線。您可以引入另一個類(例如連接類)來描述節(jié)點如何連接到邊緣。例如,你的大廳與臥室相連,不一定使用直線。DrawBezier允許您繪制曲線,但需要一個點數(shù)組。這就是連接類出現(xiàn)的地方。一些密碼可能會有幫助.。

   class Room
   {
     public Room(String name, Point location);
     public void Draw(Graphics g);
   }

   class Connection
   {
     public void Add(Point ptConnection);
     public void Add(Point[] ptConnection);

     // Draw will draw a straight line if only two points or will draw a bezier curve
     public void Draw(Graphics g);
   }

   class House // basically a graph
   {
     public void Add(Room room);
     public void AddRoomConnection(Room r1, Room r2, Connection connector);

     // draw, draw each room, then draw connections.
     public void Draw(Graphics g);
   }

   void Main()
   {
      House myHouse = new House();
      Room hall = new Room("Hall", new Point(120,10);
      Room bedroom1 = new Room("Bedroom1", Point(0, 80));
      Connection cnHallBedroom = new Connection();
      cn.Add(new Point());  // add two points to draw a line, 3 or more points to draw a curve.
      myHouse.AddRoomConnection(hall, bedroom1, cnHallBedroom);
   }

這是基本的方法,也許不是最好的,但可能是一個起點。


查看完整回答
反對 回復(fù) 2019-07-09
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊

我擅長猜測規(guī)則:-)是的,我會讓房間成為一個單一的用戶控件,您可以在其中指定一個名稱。當(dāng)然,您可以對不同房間的用戶控件進行子類化。我認(rèn)為這里的秘訣是創(chuàng)建新的房間,并將它們添加到“家庭類”中。用戶如何連接它們是完全開放的。單線,Bezier曲線等,這就是連接類的位置。兩點是一條單線,多于兩個點是一條曲線。就像我說的,這是一個基本的方法。

查看完整回答
反對 回復(fù) 2019-07-09
  • 3 回答
  • 0 關(guān)注
  • 650 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號