因此,我在WPF中創建了此窗口編輯器,該窗口編輯器可以幫助我快速創建窗體。現在,我所研究的一個功能就是創建指南工具。在它的核心,它只是創建線條來幫助保持我的UI元素在屏幕上組織。我會告訴你一個例子。漫長的黑線是我之前談到的指導方針。現在「捕捉」指南
,我注意到,在很多文藝節目(即Photoshop中)和實現形式流行的IDE,他們有一個「捕捉到」特徵,其中一個UI元素將捕捉到一條線UI或到另一個UI元素以保持對齊。事情是這樣的:
我已經有了指引顯示我的編輯了。現在,我想要幫助理解的是,我將如何執行「捕捉到」功能?我沒有要求代碼,只是一個故障(視覺故障將是最受歡迎的)。
這是我的問題:
- 如何對象知道,如果它的邊緣(上,下,左,右)觸及行嗎?
- 如果用戶不斷移動鼠標超過指南,我將如何知道如何解除UI元素的綁定?
- 如果我有(說)10行,我如何確保對象連接到最近的行?
UPDATE
當對象移動或調整大小時,請跟蹤其相對於鼠標的實際大小/位置,並分別跟蹤相同信息的快照版本。如果給定的實際邊緣在一行的任意距離內 - 比如說4個像素(真的是WPF單位)。如果它在該距離內,則將其設置爲它接近的線的值。您仍然擁有* actual *鼠標相對值,因此如果用戶不斷拖動它並且離開該4單元區域,您就知道要將其取消。找到對齊線很容易 - 再次使用'%'。 –
當用戶拖動對象並且對象的邊緣靠近線條時(例如10像素或更少或20像素等),將其對齊(即 - 立即移動到線條上)當用戶拖動對象時 - 不要移動它直到達到相同的距離,然後立即將它移出到那個距離(unsnap)。 – Evk
@ Ed Plunkett YYour邏輯是有聲的!我實現了它,它的工作原理!非常感謝! – user3838697