作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试添加一个简单的文本 block 作为控件的装饰。但我希望它刚好位于我装饰的控件上方。
这是装饰创建(问题不在于此代码):
public void AddLabelDecoration()
{
AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this);
TextBlock textBlockMarkTooltipContent = new TextBlock();
textBlockMarkTooltipContent.Text = "Test Label Adorner";
_labelAdornerMarkTooltipContentAdorner = new Adorner(this)
{
Child = textBlockMarkTooltipContent
};
adornerLayer.Add(_labelAdornerMarkTooltipContentAdorner);
}
我无法做到的是装饰的定位,位于装饰控件之上。我想使用 this MSDN code sample ,它利用 AdornerPanel 来进行定位...
但是我还没有弄清楚如何访问 AdornerPanel 对象以应用此 MSDN 代码示例...无论是从我的装饰控件、AdornedLayout 还是 Adorner...
我承认我不清楚 AdornerPanel 和 AdornerLayout 之间的 WPF 类层次结构。
感谢任何帮助。
最佳答案
public void AddLabelDecoration()
{
AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this);
TextBlock textBlockMarkTooltipContent = new TextBlock();
textBlockMarkTooltipContent.Text = "Test Label Adorner";
AdornerPanel labelAdornerAdornerPanel = new AdornerPanel();
// add your TextBlock to AdornerPanel
labelAdornerAdornerPanel.Children.Add(textBlockMarkTooltipContent);
// set placements on AdornerPanel
AdornerPlacementCollection placement = new AdornerPlacementCollection();
placement.PositionRelativeToAdornerHeight(-1, 0);
placement.PositionRelativeToAdornerWidth(1, 0);
AdornerPanel.SetPlacements(labelAdornerAdornerPanel, placement);
// create Adorner with AdornerPanel inside
_labelAdornerMarkTooltipContentAdorner = new Adorner(this)
{
Child = labelAdornerAdornerPanel
};
adornerLayer.Add(_labelAdornerMarkTooltipContentAdorner);
}
关于c# - 从 AdornerLayout 或 Adorner 或装饰控件访问 AdornerPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787202/
我正在尝试添加一个简单的文本 block 作为控件的装饰。但我希望它刚好位于我装饰的控件上方。 这是装饰创建(问题不在于此代码): public void AddLabelDecoration() {
我是一名优秀的程序员,十分优秀!