【问题标题】:WPF Border Property not working correctlyWPF 边框属性无法正常工作
【发布时间】:2011-01-28 00:51:09
【问题描述】:

我正在开发一个使用拖放功能的应用程序。当我将某些项目拖到其他项目上时,我想通过动态设置项目的边框属性来显示它们是朝向项目的顶部还是底部(与 xaml 中相反)。

我已经对此进行了研究,并使用了示例,但它们都不起作用。这是我在网格项上执行拖动操作时调用的代码。

 private void Grid_DragEnter(object sender, DragEventArgs e)
    {
        Grid grid = (Grid)sender;
        grid.Background = Brushes.Cornsilk;

        Border border = new Border();
        border.BorderBrush = Brushes.Black;
        border.BorderThickness = new Thickness(5, 10, 15, 20);
        border.Background = Brushes.Black;
        border.Padding = new Thickness(10);
        border.Child = grid;
    }

上面的代码只是测试代码,所以我可以看到边框正在显示。一旦我能得到这个,然后我将在不同的时间设置顶部或底部边框,这取决于它们是高于还是低于网格项目的中心。

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您正在设置边框的子边框,但边框本身需要添加到某个容器中才能使其可见。

    话虽如此,您可能想查看Adorners。它们正是为这种情况而设计的,不需要在运行时更改 UI 的视觉层次结构。

    【讨论】: