3

左上のポイント以外の、装飾された要素の別のポイントに装飾を固定する方法が見つかりません。ArrangeOverride を実装することで、この点を基準にして装飾を移動できることはわかっていますが、座標系は常に左上に基づいています。

何か案は?

4

2 に答える 2

2

私が知っていることではありません。しかし、ArrangeOverride 以外に Adorner コンテンツを配置する可能性がもう 1 つあります: AdornerPanel Classです。それはAdornerPlacementCollection メソッドです

  • PositionRelativeToAdornerHeight メソッド
  • PositionRelativeToAdornerWidth メソッド
  • PositionRelativeToContentHeight メソッド
  • PositionRelativeToContentWidth メソッド
  • SizeRelativeToAdornerDesiredHeight メソッド
  • SizeRelativeToAdornerDesiredWidth メソッド
  • SizeRelativeToContentHeight メソッド
  • SizeRelativeToContentWidth メソッド

要素やオフセットなどを使用して、要素またはコンテンツに対する要素の位置とサイズを決定できます。装飾されたコントロールの上に Adorner を配置するには、次のサンプルを参照してください。

// create AdornerPanel and add your adorner content
AdornerPanel adornerPanel = new AdornerPanel();
adornerPanel.Children.Add(yourAdornerContent);

// set placements on AdornerPanel
AdornerPlacementCollection placement = new AdornerPlacementCollection();
placement.PositionRelativeToAdornerHeight(-1, 0);
placement.PositionRelativeToAdornerWidth(1, 0);
AdornerPanel.SetPlacements(adornerPanel, placement);

// create Adorner with AdornerPanel inside
Adorner adorner = new YourAdorner(adornedElement)
{
    Child = adornerPanel
};
于 2013-10-03T18:49:09.027 に答える
1

このソリューションは私にとって完璧でした http://blogs.telerik.com/xamlteam/posts/08-05-22/wpf-series-creating-generic-adorner.aspx

于 2015-05-28T15:12:04.697 に答える