Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Documents / FixedSOMImage.cs / 1 / FixedSOMImage.cs
/*++ File: FixedSOMImage.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: SOM object that wraps an image on the page. The corresponding markup element can be either an image or a Path with an ImageBrush History: 05/17/2005: agurcan - Created --*/ namespace System.Windows.Documents { using System.Windows.Automation; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Globalization; using System.Diagnostics; internal sealed class FixedSOMImage : FixedSOMElement { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors private FixedSOMImage(Rect imageRect, GeneralTransform trans, Uri sourceUri, FixedNode node, DependencyObject o) : base(node, trans) { _boundingRect = trans.TransformBounds(imageRect); _source = sourceUri; _startIndex = 0; _endIndex = 1; _name = AutomationProperties.GetName(o); _helpText = AutomationProperties.GetHelpText(o); } #endregion Constructors //------------------------------------------------------------------- // // Public Methods // //--------------------------------------------------------------------- #region Public Methods public static FixedSOMImage Create(FixedPage page, Image image, FixedNode fixedNode) { Uri imageUri = null; if (image.Source is BitmapImage) { BitmapImage imageSource = image.Source as BitmapImage; imageUri = imageSource.UriSource; } else if (image.Source is BitmapFrame) { BitmapFrame imageSource = image.Source as BitmapFrame; imageUri = new Uri(imageSource.ToString(), UriKind.RelativeOrAbsolute); } Rect sourceRect = new Rect(image.RenderSize); GeneralTransform transform = image.TransformToAncestor(page); return new FixedSOMImage(sourceRect, transform, imageUri, fixedNode, image); } public static FixedSOMImage Create(FixedPage page, Path path, FixedNode fixedNode) { Debug.Assert(path.Fill is ImageBrush); ImageSource source = ((ImageBrush)(path.Fill)).ImageSource; Uri imageUri = null; if (source is BitmapImage) { BitmapImage imageSource = source as BitmapImage; imageUri = imageSource.UriSource; } else if (source is BitmapFrame) { BitmapFrame imageSource = source as BitmapFrame; imageUri = new Uri(imageSource.ToString(), UriKind.RelativeOrAbsolute); } Rect sourceRect = path.Data.Bounds; GeneralTransform trans = path.TransformToAncestor(page); return new FixedSOMImage(sourceRect, trans, imageUri, fixedNode, path); } #if DEBUG public override void Render(DrawingContext dc, string label, DrawDebugVisual debugVisual) { Pen pen = new Pen(Brushes.Yellow, 1); Rect rect = _boundingRect; rect.Inflate(5,5); dc.DrawRectangle(null, pen , rect); if (label != null && debugVisual == DrawDebugVisual.Paragraphs) { base.RenderLabel(dc, label); } } #endif #endregion Public Methods //-------------------------------------------------------------------- // // Internal Properties // //--------------------------------------------------------------------- #region Internal Properties internal Uri Source { get { return _source; } } internal String Name { get { return _name; } } internal String HelpText { get { return _helpText; } } #endregion Internal Properties //-------------------------------------------------------------------- // // Private Fields // //---------------------------------------------------------------------- #region Private Fields private Uri _source; private String _name; private String _helpText; #endregion Interanl Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /*++ File: FixedSOMImage.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: SOM object that wraps an image on the page. The corresponding markup element can be either an image or a Path with an ImageBrush History: 05/17/2005: agurcan - Created --*/ namespace System.Windows.Documents { using System.Windows.Automation; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Globalization; using System.Diagnostics; internal sealed class FixedSOMImage : FixedSOMElement { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors private FixedSOMImage(Rect imageRect, GeneralTransform trans, Uri sourceUri, FixedNode node, DependencyObject o) : base(node, trans) { _boundingRect = trans.TransformBounds(imageRect); _source = sourceUri; _startIndex = 0; _endIndex = 1; _name = AutomationProperties.GetName(o); _helpText = AutomationProperties.GetHelpText(o); } #endregion Constructors //------------------------------------------------------------------- // // Public Methods // //--------------------------------------------------------------------- #region Public Methods public static FixedSOMImage Create(FixedPage page, Image image, FixedNode fixedNode) { Uri imageUri = null; if (image.Source is BitmapImage) { BitmapImage imageSource = image.Source as BitmapImage; imageUri = imageSource.UriSource; } else if (image.Source is BitmapFrame) { BitmapFrame imageSource = image.Source as BitmapFrame; imageUri = new Uri(imageSource.ToString(), UriKind.RelativeOrAbsolute); } Rect sourceRect = new Rect(image.RenderSize); GeneralTransform transform = image.TransformToAncestor(page); return new FixedSOMImage(sourceRect, transform, imageUri, fixedNode, image); } public static FixedSOMImage Create(FixedPage page, Path path, FixedNode fixedNode) { Debug.Assert(path.Fill is ImageBrush); ImageSource source = ((ImageBrush)(path.Fill)).ImageSource; Uri imageUri = null; if (source is BitmapImage) { BitmapImage imageSource = source as BitmapImage; imageUri = imageSource.UriSource; } else if (source is BitmapFrame) { BitmapFrame imageSource = source as BitmapFrame; imageUri = new Uri(imageSource.ToString(), UriKind.RelativeOrAbsolute); } Rect sourceRect = path.Data.Bounds; GeneralTransform trans = path.TransformToAncestor(page); return new FixedSOMImage(sourceRect, trans, imageUri, fixedNode, path); } #if DEBUG public override void Render(DrawingContext dc, string label, DrawDebugVisual debugVisual) { Pen pen = new Pen(Brushes.Yellow, 1); Rect rect = _boundingRect; rect.Inflate(5,5); dc.DrawRectangle(null, pen , rect); if (label != null && debugVisual == DrawDebugVisual.Paragraphs) { base.RenderLabel(dc, label); } } #endif #endregion Public Methods //-------------------------------------------------------------------- // // Internal Properties // //--------------------------------------------------------------------- #region Internal Properties internal Uri Source { get { return _source; } } internal String Name { get { return _name; } } internal String HelpText { get { return _helpText; } } #endregion Internal Properties //-------------------------------------------------------------------- // // Private Fields // //---------------------------------------------------------------------- #region Private Fields private Uri _source; private String _name; private String _helpText; #endregion Interanl 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
- DocumentPageViewAutomationPeer.cs
- GenericRootAutomationPeer.cs
- WebControl.cs
- PropertyMap.cs
- ToolBar.cs
- CapacityStreamGeometryContext.cs
- SafeIUnknown.cs
- BasePropertyDescriptor.cs
- TableLayout.cs
- EventlogProvider.cs
- DecoderNLS.cs
- DefaultPropertyAttribute.cs
- EmbeddedMailObjectsCollection.cs
- XmlUtf8RawTextWriter.cs
- BuildProviderAppliesToAttribute.cs
- JsonReader.cs
- ProcessThreadCollection.cs
- path.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- SimpleFieldTemplateUserControl.cs
- CharacterBuffer.cs
- _AuthenticationState.cs
- XmlSerializerFactory.cs
- AxisAngleRotation3D.cs
- MobileListItemCollection.cs
- WebPartsPersonalizationAuthorization.cs
- IndexedWhereQueryOperator.cs
- RecognizedWordUnit.cs
- CurrentTimeZone.cs
- AttachedPropertyMethodSelector.cs
- DoWorkEventArgs.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- AxisAngleRotation3D.cs
- ComponentSerializationService.cs
- HtmlForm.cs
- DbCommandDefinition.cs
- GenericsInstances.cs
- MultiView.cs
- Model3DCollection.cs
- TemplateXamlParser.cs
- SaveFileDialog.cs
- CustomTypeDescriptor.cs
- CustomAttributeSerializer.cs
- WSTransactionSection.cs
- EditorPartCollection.cs
- FixUpCollection.cs
- XPathDocumentIterator.cs
- Deserializer.cs
- KernelTypeValidation.cs
- Wildcard.cs
- PropertyTab.cs
- SecurityProtocolCorrelationState.cs
- TranslateTransform.cs
- Classification.cs
- CodeRemoveEventStatement.cs
- CollectionViewSource.cs
- TagMapInfo.cs
- HtmlTableRow.cs
- ActiveDocumentEvent.cs
- OptimizerPatterns.cs
- MemberRelationshipService.cs
- TabControl.cs
- HttpUnhandledOperationInvoker.cs
- DataGridColumnStyleMappingNameEditor.cs
- ConfigurationValidatorAttribute.cs
- CodeTypeReferenceCollection.cs
- ShutDownListener.cs
- PackagePartCollection.cs
- MetaForeignKeyColumn.cs
- EventProvider.cs
- ValidatorCompatibilityHelper.cs
- VirtualizedContainerService.cs
- BitmapEffectInput.cs
- HtmlInputPassword.cs
- RbTree.cs
- ToolStripDropDownClosingEventArgs.cs
- MembershipSection.cs
- PrinterUnitConvert.cs
- smtpconnection.cs
- ExtensionDataObject.cs
- CredentialManagerDialog.cs
- ColumnClickEvent.cs
- FilterElement.cs
- NullToBooleanConverter.cs
- ChangeBlockUndoRecord.cs
- BaseAppDomainProtocolHandler.cs
- SerialStream.cs
- UnsafeNativeMethods.cs
- NotifyParentPropertyAttribute.cs
- HtmlWindowCollection.cs
- NativeMethods.cs
- SearchForVirtualItemEventArgs.cs
- MatrixAnimationUsingKeyFrames.cs
- TablePattern.cs
- TextDecorationCollection.cs
- VirtualPathProvider.cs
- ColumnResizeUndoUnit.cs
- RoutedEventConverter.cs
- OdbcConnectionOpen.cs
- CalendarDay.cs