⑴ 在windows模式下,用c#編程實現UI圖形拖拽,生成編程語言的代碼,有沒有案例推薦下。可以拖拽方法,控制流
大部分IDE的開發環境都支持。比如你用VS C#.net就可以,或是套裝產品,VS 2008/2010等。
組件通過拖拽就可以應用、對於類的設計可以創建類圖實現,VS 2010還支持UML的應用。我也嘗試過,但沒搞明白,感覺不靈。
另一個選擇,使用第三方的UML工具也可以實現您提到的功能。比如BORLAND公司對軟體生產周期的管理,支持像VS這樣的工具。這個應用之前我嘗試過,從需求開始,設計等圖形化的內容可以直接生成基本代碼,也支持雙向的同步。文檔也可以自動生成。當然,這些都有建議在規范的基礎上。整個應用環境的實施和標准工作規模比較大、成本高,適合專業的軟體開發團隊。
⑵ 在C#中圖形的拖拽
你可以通過Graphics來實現
關於拖拽的問題,
1、你可以使用自己設計的演算法來實現基本的拖拽效果
2、你可以Graphics來實現圖形的動態變化
⑶ 如何在固定區域內對圖片進行拖拽操作
web里用javascript來做,網上有現成的封裝好的腳本庫(google一下drag-drop-dom)可以直接將div初始化為drag-drop-div
自己寫也行,思路就是對滑鼠的事件判斷,然後層定位.
位置記錄要持久化的話就採用ajax來做
⑷ unity3D中如何實現用腳本創建出的模型能夠用滑鼠拖拽
不太清楚你的意思。如果是在編輯器模式下的下直接拖到模型就行了。
如果實在運行模式下,那麼給實例物體綁定腳本是必須的。因為你獲取滑鼠的位置是在繼承自MonoBehaviour 的腳本中獲取的,而這個腳本必須拖到物體上才能執行。
如果你不想編輯時就把這個腳本拖上物體,你可以用AddCommpent()方法在運行時動態添加對應腳本,完了後用Destroy()方法刪除
⑸ 我想寫個unity3D C#腳本用滑鼠拖動物體,該怎麼辦呀,
1.新建工程,創建測試物體並賦予材質。
⑹ unity3d我想把物體拖拽到腳本里為什麼不行呢如圖
聲明的時候帶public(公開)才可以
比如
public Transform m_transform;
⑺ web系統中實現圖形拖拽的功能,怎麼做
document.onmousemove=function(e){
if(isDraging===true){
var nowX=e.pageX-startX;
var nowY=e.pageY-startY;
oDrag.style.left=nowX+'px';
oDrag.style.top=nowY+'px';
return false; //重新觸發
}
}
addEventListener 有兼容問題 換document.onmousemove這種形式也可以 自己試下問題不大
⑻ FLASH一張圖片二個功能製作滑鼠拖動和旋轉
把圖片轉換為元件 設置實例名為mc
在幀上加代碼如下
mc.onPress = function() {
this.onEnterFrame = function() {
startDrag(this,false);
this._rotation += 45;
};
};
mc.onRelease = function() {
delete this.onEnterFrame;
};
滑鼠按下 拖動並旋轉
滑鼠釋放 停止
你要的是拖動 點擊旋轉 改下觸發事件就可以了
把你畫好的圖形轉換成元件後在上面加代碼:
on (press) {
startDrag(this,false)
}
on (release) {
stopDrag()
this._rotation+=25
}
然後在場景復制幾個就可以了
滑鼠按下拖動 滑鼠松開(點擊)停止拖動 每點擊一次旋轉25度 度數你可以自己改
⑼ Windows編程怎麼把用GDI繪制好的圖形進行拖拽操作
1)處理WM_LBUTTONDOWN消息,獲取當然滑鼠坐標
2)判斷滑鼠坐標,如果落在矩形內部,拖動激活標志置1(用一個全局變數或WndProc局部靜態變數來實現)
3)處理WM_MOUSEMOVE消息,獲取新的滑鼠坐標,如果拖動激活標志為1,那麼就在新的滑鼠位置重新繪制矩形
4)處理WM_LBUTTONUP消息,拖動激活標志置0
大致就這樣了,細節地方自己研究。
⑽ unity3D中實現方塊能被滑鼠拖動的C#腳本
這是目前我看到的最精簡的,僅一個事件完成拖拽.
/*
* 用到了unity3d非常好的協同機制實現這一點,OnMouseDown事件表示滑鼠已作了射線判斷得到了對象。
* 拖拽時保持z軸不變,因為屏幕是xy二維的,空間是三維的。
* */
IEnumerator OnMouseDown ()
{
var camera = Camera.mainCamera;
if (camera) {
//轉換對象到當前屏幕位置
Vector3 screenPosition = camera.WorldToScreenPoint (transform.position);
//滑鼠屏幕坐標
Vector3 mScreenPosition=new Vector3 (Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);
//獲得滑鼠和對象之間的偏移量,拖拽時相機應該保持不動
Vector3 offset = transform.position - camera.ScreenToWorldPoint( mScreenPosition);
print ("drag starting:"+transform.name);
//若滑鼠左鍵一直按著則循環繼續
while (Input.GetMouseButton (0)) {
//滑鼠屏幕上新位置
mScreenPosition = new Vector3 (Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);
// 對象新坐標
transform.position=offset + camera.ScreenToWorldPoint (mScreenPosition);
//協同,等待下一幀繼續
yield return new WaitForFixedUpdate ();
}
print ("drag compeleted");
}
}
---------------------------分割線
下面是unity自帶的,在Scripts資源包里有拖拽代碼,這個拖拽物體必須附加Rigidbody剛體組件。
DragRigidbody.js
var spring = 50.0;
var damper = 5.0;
var drag = 10.0;
var angularDrag = 5.0;
var distance = 0.2;
var attachToCenterOfMass = false;
private var springJoint : SpringJoint;
function Update ()
{
// Make sure the user pressed the mouse down
if (!Input.GetMouseButtonDown (0))
return;
var mainCamera = FindCamera();
// We need to actually hit an object
var hit : RaycastHit;
if (!Physics.Raycast(mainCamera.ScreenPointToRay(Input.mousePosition), hit, 100))
return;
// We need to hit a rigidbody that is not kinematic
if (!hit.rigidbody || hit.rigidbody.isKinematic)
return;
if (!springJoint)
{
var go = new GameObject("Rigidbody dragger");
var body : Rigidbody = go.AddComponent ("Rigidbody") as Rigidbody;
springJoint = go.AddComponent ("SpringJoint");
body.isKinematic = true;
}
springJoint.transform.position = hit.point;
if (attachToCenterOfMass)
{
var anchor = transform.TransformDirection(hit.rigidbody.centerOfMass) + hit.rigidbody.transform.position;
anchor = springJoint.transform.InverseTransformPoint(anchor);
springJoint.anchor = anchor;
}
else
{
springJoint.anchor = Vector3.zero;
}
springJoint.spring = spring;
springJoint.damper = damper;
springJoint.maxDistance = distance;
springJoint.connectedBody = hit.rigidbody;
StartCoroutine ("DragObject", hit.distance);
}
function DragObject (distance : float)
{
var oldDrag = springJoint.connectedBody.drag;
var oldAngularDrag = springJoint.connectedBody.angularDrag;
springJoint.connectedBody.drag = drag;
springJoint.connectedBody.angularDrag = angularDrag;
var mainCamera = FindCamera();
while (Input.GetMouseButton (0))
{
var ray = mainCamera.ScreenPointToRay (Input.mousePosition);
springJoint.transform.position = ray.GetPoint(distance);
yield;
}
if (springJoint.connectedBody)
{
springJoint.connectedBody.drag = oldDrag;
springJoint.connectedBody.angularDrag = oldAngularDrag;
springJoint.connectedBody = null;
}
}
function FindCamera ()
{
if (camera)
return camera;
else
return Camera.main;
}