Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / ColumnResizeAdorner.cs / 1305600 / ColumnResizeAdorner.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Adorner for column resize.
//
// History:
// 08/19/2004 : ghermann - Created
//
//---------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using MS.Win32;
using MS.Internal;
namespace System.Windows.Documents.Internal
{
internal class ColumnResizeAdorner : Adorner
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// C'tor for adorner
///
///
/// FramwerokElement with TextView to which this element is attached
/// as adorner.
///
internal ColumnResizeAdorner(UIElement scope) : base(scope)
{
Debug.Assert(scope != null);
// position
_pen = new Pen(new SolidColorBrush(Colors.LightSlateGray), 2.0);
_x = Double.NaN;
_top = Double.NaN;
_height = Double.NaN;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Add a transform so that the adorner is in right spot.
///
///
/// The transform applied to the object the adorner adorns
///
///
/// Transform to apply to the adorner
///
public override GeneralTransform GetDesiredTransform(GeneralTransform transform)
{
GeneralTransformGroup group;
TranslateTransform translation;
group = new GeneralTransformGroup();
translation = new TranslateTransform(_x, _top);
group.Children.Add(translation);
if (transform != null)
{
group.Children.Add(transform);
}
return group;
}
#endregion Public Methods
//------------------------------------------------------
//
// Protected Methods
//
//------------------------------------------------------
#region Protected Methods
protected override void OnRender(DrawingContext drawingContext)
{
// Render as a 2 pixel wide rect, one pixel in each bordering char bounding box.
drawingContext.DrawLine(_pen, new Point(0, 0),
new Point(0, _height));
}
#endregion Protected Events
//-----------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
///
/// Updates position for adorner.
///
///
///
internal void Update(double newX)
{
if(_x != newX)
{
_x = newX;
AdornerLayer adornerLayer;
adornerLayer = VisualTreeHelper.GetParent(this) as AdornerLayer;
if (adornerLayer != null)
{
// It may be null when TextBox is detached from a tree
adornerLayer.Update(AdornedElement);
adornerLayer.InvalidateVisual();
}
}
}
internal void Initialize(UIElement renderScope, double xPos, double yPos, double height)
{
Debug.Assert(_adornerLayer == null, "Attempt to overwrite existing AdornerLayer!");
_adornerLayer = AdornerLayer.GetAdornerLayer(renderScope);
if (_adornerLayer != null)
{
_adornerLayer.Add(this);
}
_x = xPos;
_top = yPos;
_height = height;
}
internal void Uninitialize()
{
if (_adornerLayer != null)
{
_adornerLayer.Remove(this);
_adornerLayer = null;
}
}
#endregion Internal methods
//-----------------------------------------------------
//
// Private Methods
//
//-----------------------------------------------------
#region Private Methods
#endregion Private methods
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
// x position
private double _x;
// top position
private double _top;
// height
private double _height;
private Pen _pen;
// Cached adornerlayer
private AdornerLayer _adornerLayer;
#endregion Private Fields
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Adorner for column resize.
//
// History:
// 08/19/2004 : ghermann - Created
//
//---------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using MS.Win32;
using MS.Internal;
namespace System.Windows.Documents.Internal
{
internal class ColumnResizeAdorner : Adorner
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// C'tor for adorner
///
///
/// FramwerokElement with TextView to which this element is attached
/// as adorner.
///
internal ColumnResizeAdorner(UIElement scope) : base(scope)
{
Debug.Assert(scope != null);
// position
_pen = new Pen(new SolidColorBrush(Colors.LightSlateGray), 2.0);
_x = Double.NaN;
_top = Double.NaN;
_height = Double.NaN;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Add a transform so that the adorner is in right spot.
///
///
/// The transform applied to the object the adorner adorns
///
///
/// Transform to apply to the adorner
///
public override GeneralTransform GetDesiredTransform(GeneralTransform transform)
{
GeneralTransformGroup group;
TranslateTransform translation;
group = new GeneralTransformGroup();
translation = new TranslateTransform(_x, _top);
group.Children.Add(translation);
if (transform != null)
{
group.Children.Add(transform);
}
return group;
}
#endregion Public Methods
//------------------------------------------------------
//
// Protected Methods
//
//------------------------------------------------------
#region Protected Methods
protected override void OnRender(DrawingContext drawingContext)
{
// Render as a 2 pixel wide rect, one pixel in each bordering char bounding box.
drawingContext.DrawLine(_pen, new Point(0, 0),
new Point(0, _height));
}
#endregion Protected Events
//-----------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
#region Internal Methods
///
/// Updates position for adorner.
///
///
///
internal void Update(double newX)
{
if(_x != newX)
{
_x = newX;
AdornerLayer adornerLayer;
adornerLayer = VisualTreeHelper.GetParent(this) as AdornerLayer;
if (adornerLayer != null)
{
// It may be null when TextBox is detached from a tree
adornerLayer.Update(AdornedElement);
adornerLayer.InvalidateVisual();
}
}
}
internal void Initialize(UIElement renderScope, double xPos, double yPos, double height)
{
Debug.Assert(_adornerLayer == null, "Attempt to overwrite existing AdornerLayer!");
_adornerLayer = AdornerLayer.GetAdornerLayer(renderScope);
if (_adornerLayer != null)
{
_adornerLayer.Add(this);
}
_x = xPos;
_top = yPos;
_height = height;
}
internal void Uninitialize()
{
if (_adornerLayer != null)
{
_adornerLayer.Remove(this);
_adornerLayer = null;
}
}
#endregion Internal methods
//-----------------------------------------------------
//
// Private Methods
//
//-----------------------------------------------------
#region Private Methods
#endregion Private methods
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
// x position
private double _x;
// top position
private double _top;
// height
private double _height;
private Pen _pen;
// Cached adornerlayer
private AdornerLayer _adornerLayer;
#endregion Private Fields
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AgileSafeNativeMemoryHandle.cs
- BaseCollection.cs
- LineServicesCallbacks.cs
- CustomTypeDescriptor.cs
- BrowserCapabilitiesFactory.cs
- SelectionHighlightInfo.cs
- MetadataItem.cs
- AutoResetEvent.cs
- ContentHostHelper.cs
- CaseStatementSlot.cs
- ActivationWorker.cs
- PropertyInformation.cs
- ManagementInstaller.cs
- FilterElement.cs
- MatrixAnimationBase.cs
- AnnotationResourceChangedEventArgs.cs
- IndexerReference.cs
- ControlCollection.cs
- PolyLineSegment.cs
- DataGridItemEventArgs.cs
- AutoResetEvent.cs
- Scalars.cs
- FactoryRecord.cs
- HierarchicalDataSourceControl.cs
- sqlstateclientmanager.cs
- SqlDataSourceView.cs
- XmlDataFileEditor.cs
- PolyLineSegment.cs
- WmlPageAdapter.cs
- OlePropertyStructs.cs
- UIElement3DAutomationPeer.cs
- PackUriHelper.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- AsyncPostBackTrigger.cs
- TextRunCache.cs
- RijndaelManagedTransform.cs
- AnimationClockResource.cs
- OpCodes.cs
- UnmanagedMemoryAccessor.cs
- ToolStripKeyboardHandlingService.cs
- PeerNameRegistration.cs
- ValidationRule.cs
- DataReceivedEventArgs.cs
- StickyNoteContentControl.cs
- TreeViewImageIndexConverter.cs
- AggregateNode.cs
- Delegate.cs
- ComponentChangedEvent.cs
- ConstNode.cs
- RegexTypeEditor.cs
- UnsafeCollabNativeMethods.cs
- unitconverter.cs
- FileVersion.cs
- TypeToStringValueConverter.cs
- securitycriticaldata.cs
- ConsoleKeyInfo.cs
- SemanticResolver.cs
- WaveHeader.cs
- UTF32Encoding.cs
- IntSecurity.cs
- EditorBrowsableAttribute.cs
- HtmlInputFile.cs
- SqlTriggerAttribute.cs
- X509ChainPolicy.cs
- XPathMultyIterator.cs
- TableLayoutPanel.cs
- DataColumnMapping.cs
- MemberInfoSerializationHolder.cs
- TaskHelper.cs
- FillRuleValidation.cs
- DataControlPagerLinkButton.cs
- ExtensionFile.cs
- CheckBoxBaseAdapter.cs
- Array.cs
- CodeDefaultValueExpression.cs
- cache.cs
- PageStatePersister.cs
- StylusCaptureWithinProperty.cs
- ServiceConfigurationTraceRecord.cs
- _ChunkParse.cs
- LayoutDump.cs
- WeakReferenceKey.cs
- LocalizedNameDescriptionPair.cs
- ManifestResourceInfo.cs
- KoreanLunisolarCalendar.cs
- SspiNegotiationTokenAuthenticator.cs
- SharedStatics.cs
- DataSourceHelper.cs
- ClientSponsor.cs
- DependencyPropertyChangedEventArgs.cs
- EventMap.cs
- UxThemeWrapper.cs
- TypeUtil.cs
- GenericsNotImplementedException.cs
- SystemIPv6InterfaceProperties.cs
- columnmapkeybuilder.cs
- SmtpFailedRecipientsException.cs
- StringHelper.cs
- ContextProperty.cs
- InheritanceAttribute.cs