Browse Source

Border for Empty Image now fully working!

pull/586/head
jogibear9988 12 years ago
parent
commit
b865e4e8b6
  1. 8
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/AdornerLayer.cs
  2. 7
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/BorderForImageControl.cs
  3. 5
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs

8
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/AdornerLayer.cs

@ -227,8 +227,12 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
var rt = (MatrixTransform) adorner.AdornedElement.TransformToAncestor(_designPanel); var rt = (MatrixTransform) adorner.AdornedElement.TransformToAncestor(_designPanel);
if (adorner.AdornedDesignItem != null && adorner.AdornedDesignItem.Parent != null && adorner.AdornedDesignItem.Parent.View is Canvas && adorner.AdornedElement.RenderSize.Height == 0 && adorner.AdornedElement.RenderSize.Width == 0) if (adorner.AdornedDesignItem != null && adorner.AdornedDesignItem.Parent != null && adorner.AdornedDesignItem.Parent.View is Canvas && adorner.AdornedElement.RenderSize.Height == 0 && adorner.AdornedElement.RenderSize.Width == 0)
{ {
var xOffset = rt.Matrix.OffsetX - (((FrameworkElement)adorner.AdornedElement).Width / 2); var width = ((FrameworkElement) adorner.AdornedElement).Width;
var yOffset = rt.Matrix.OffsetY - (((FrameworkElement)adorner.AdornedElement).Height / 2); width = width > 0 ? width : 2.0;
var height = ((FrameworkElement)adorner.AdornedElement).Height;
height = height > 0 ? height : 2.0;
var xOffset = rt.Matrix.OffsetX - (width / 2);
var yOffset = rt.Matrix.OffsetY - (height / 2);
rt = new MatrixTransform(new Matrix(rt.Matrix.M11, rt.Matrix.M12, rt.Matrix.M21, rt.Matrix.M22, xOffset, yOffset)); rt = new MatrixTransform(new Matrix(rt.Matrix.M11, rt.Matrix.M12, rt.Matrix.M21, rt.Matrix.M22, xOffset, yOffset));
} }

7
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/BorderForImageControl.cs

@ -17,17 +17,13 @@
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
using System; using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq; using System.Linq;
using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using ICSharpCode.WpfDesign.Adorners; using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Designer.Controls;
using ICSharpCode.WpfDesign.Extensions; using ICSharpCode.WpfDesign.Extensions;
namespace ICSharpCode.WpfDesign.Designer.Extensions namespace ICSharpCode.WpfDesign.Designer.Extensions
@ -83,6 +79,9 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
border.Background = Brushes.Transparent; border.Background = Brushes.Transparent;
border.IsHitTestVisible = true; border.IsHitTestVisible = true;
border.MouseDown += border_MouseDown; border.MouseDown += border_MouseDown;
border.MinWidth = 1;
border.MinHeight = 1;
AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent); AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent);
cachedAdornerPanel.Children.Add(border); cachedAdornerPanel.Children.Add(border);
} }

5
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs

@ -220,11 +220,6 @@ namespace ICSharpCode.WpfDesign
if (element is FrameworkElement && size.Height < ((FrameworkElement)element).MinHeight) if (element is FrameworkElement && size.Height < ((FrameworkElement)element).MinHeight)
size.Height = ((FrameworkElement)element).Height; size.Height = ((FrameworkElement)element).Height;
if (element is FrameworkElement && size.Width == 0)
size.Width = element.DesiredSize.Width;
if (element is FrameworkElement && size.Height == 0)
size.Height = element.DesiredSize.Height;
return size; return size;
} }

Loading…
Cancel
Save