手动绘制包裹面板内的坐标

时间:2017-03-06 02:19:05

标签: c# wpf image wrappanel

在我的应用程序中,我有几个(!)(换行)面板,其中包含小缩略图(Image)(动态生成缩略图,因此没有xaml)。我希望显示哪个缩略图我选择"通过绘制"发光"边界。

要做到这一点,我去写了一个" selectElement"功能:

private void SelectElement(FrameworkElement elem)
{
    if (elem == _selectedElement) return;
    _selectedElement = elem;
    var parentPanel = _selectionBorder?.Parent as Panel;
    if (parentPanel != null)
    {
        parentPanel.Children.Remove(_selectionBorder);
    }
    _selectionBorder = null;
    if (_selectedElement == null) return;
    _selectionBorder = new Border
    {
        BorderThickness = new Thickness(10),
        BorderBrush = Brushes.Black
    };

    var p = _selectedElement.Parent as Panel;
    if (p == null) return;
    p.Children.Add(_selectionBorder);
    var m = _selectedElement.Margin;
    _selectionBorder.Margin = m;
}

将从MouseDown的{​​{1}}事件调用; 现在的问题是:即使我将边框的边距设置为与元素相同,也会在所有元素之后添加边框。是否有可能绕过"绕过"此边框的默认wrappanel行为? - 或者是否可以在我的缩略图Image"周围画一个"边框? - 没有实际增加图像的大小("半透明边框"应该与图像混合到两侧)。

PS:是的,我意识到这意味着边界被切断了#34;当缩略图靠近包裹界的边界时,我也可以。

0 个答案:

没有答案