1234567891011121314151617181920212223242526272829303132333435 |
- using System;
- using System.Windows;
- using System.Windows.Controls;
- namespace DeceiveBarcodeManagement.Control
- {
- public class CanvasControl : Canvas
- {
- protected override Size MeasureOverride(Size constraint)
- {
- Size size = new Size();
- foreach (UIElement element in Children)
- {
- double left = Canvas.GetLeft(element);
- double top = Canvas.GetTop(element);
- left = double.IsNaN(left) ? 0 : left;
- top = double.IsNaN(top) ? 0 : top;
- element.Measure(constraint);
- Size desiredSize = element.DesiredSize;
- if (!double.IsNaN(desiredSize.Width) && !double.IsNaN(desiredSize.Height))
- {
- size.Width = Math.Max(size.Width, left + desiredSize.Width);
- size.Height = Math.Max(size.Height, top + desiredSize.Height);
- }
- }
- size.Width += 10;
- size.Height += 10;
- base.InvalidateMeasure();
- return size;
- }
- }
- }
|