讓我們假設我有一個要在視覺設計器中旋轉和縮放的元素: 用戶應該能夠拖動邊並且圖形應該適當縮放。
旋轉輸入度數。旋轉元素的縮放
以下事實與旋轉元件的一個問題:
在左上點拖動不僅寬度和高度都會發生變化,但左上角的位置爲好。 當右上角的點被拖動時,尺寸改變,並且Y位置也是如此012ff
如果元素被旋轉但是(WPF RenderTransform,圍繞它的中心旋轉),那麼行爲必須相應地改變,我不知道怎麼樣。假設元素被旋轉90°,那麼之前左上角的點是右上角的點。
這意味着我必須改變一些東西,但我完全難倒我害怕
我正在尋找在任何圖形程序中實現的行爲。
用戶基本上拖動邊界框的點,圖形應投影在框內。
WPF中如何解決這個問題?
繪製的元素派生自UIElement,所以我可以訪問所有需要的變換屬性。該解決方案應適用於任何輸入的輪換。
如果你能幫助我,或者指引我走向正確的方向,我將不勝感激。
編輯:
我知道如何縮放和旋轉元素。理想的結果是元素完全適合用戶拖動的框。所以這個問題與WPF相關的數學更相關。
編輯:
謝謝不提供我什麼我可以改進建議downvoting。
爲了理解問題,請嘗試以下操作:
創建一個新的WPF項目,添加任意UIElement並旋轉它,例如90°。
現在記住拖動前的邊距,並將某個地方的右下角拖動。正如你所看到的邊距(=位置)也是如此。我的問題是如何計算這種補償,以便在拖動時爲用戶提供期望的結果。因爲如果我做而不是改變位置來補償比例,比結果只是奇怪,並不像預期的那樣。
補償取決於元素的比例。明顯。
請參考以下圖片:
你在這裏看到的是Canvas.Top和Canvas.Left屬性,然後拖動右下角的點,然後拖動右下角的點。
http://imageshack.us/photo/my-images/268/beforeaftert.png/?sa=0
謝謝。這正是我正在尋找的 –