Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / FixedSOMImage.cs / 1305600 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AccessorTable.cs
- MarkupCompilePass1.cs
- Empty.cs
- TTSEvent.cs
- XmlHierarchicalDataSourceView.cs
- EncoderParameters.cs
- DataGridHelper.cs
- XPathNodeInfoAtom.cs
- TemplateBindingExtensionConverter.cs
- DataGridColumnReorderingEventArgs.cs
- DirectoryNotFoundException.cs
- METAHEADER.cs
- SerializationEventsCache.cs
- ImageDrawing.cs
- controlskin.cs
- TextBox.cs
- ButtonField.cs
- HtmlElementErrorEventArgs.cs
- Logging.cs
- RtType.cs
- OSFeature.cs
- FormatConvertedBitmap.cs
- DataGridViewCellParsingEventArgs.cs
- TableRowGroupCollection.cs
- InvalidChannelBindingException.cs
- ReadOnlyCollectionBase.cs
- PlatformNotSupportedException.cs
- QueryOpcode.cs
- SecurityKeyIdentifier.cs
- WebPartMenu.cs
- ObjectDataSourceEventArgs.cs
- ImageAutomationPeer.cs
- DataGridLinkButton.cs
- SByte.cs
- CacheEntry.cs
- PrivateFontCollection.cs
- ViewCellRelation.cs
- PasswordTextContainer.cs
- RemotingServices.cs
- LinearQuaternionKeyFrame.cs
- COM2Properties.cs
- Timeline.cs
- XmlChildNodes.cs
- SchemaReference.cs
- XmlHierarchicalDataSourceView.cs
- WebServiceData.cs
- SqlCacheDependencyDatabase.cs
- Number.cs
- WindowsListViewGroup.cs
- AnnotationElement.cs
- PathFigureCollection.cs
- UnsafeNativeMethods.cs
- HttpContextServiceHost.cs
- LightweightCodeGenerator.cs
- StartFileNameEditor.cs
- GetIsBrowserClientRequest.cs
- StartUpEventArgs.cs
- GridViewCellAutomationPeer.cs
- ISAPIRuntime.cs
- TdsParserHelperClasses.cs
- ItemType.cs
- TextTreeExtractElementUndoUnit.cs
- WmpBitmapEncoder.cs
- HttpBrowserCapabilitiesWrapper.cs
- WhitespaceRuleReader.cs
- AspCompat.cs
- LockCookie.cs
- VirtualPath.cs
- ComplusTypeValidator.cs
- Int32Rect.cs
- ScaleTransform3D.cs
- Vector3DKeyFrameCollection.cs
- HttpRequest.cs
- UnhandledExceptionEventArgs.cs
- SqlErrorCollection.cs
- EventRecord.cs
- MembershipSection.cs
- XmlSchemaIdentityConstraint.cs
- ModelItemExtensions.cs
- BlobPersonalizationState.cs
- PatternMatcher.cs
- TextFragmentEngine.cs
- IProvider.cs
- ActionMismatchAddressingException.cs
- WebUtil.cs
- DataServiceHostWrapper.cs
- HelpExampleGenerator.cs
- SolidColorBrush.cs
- ProfileGroupSettingsCollection.cs
- MessageAction.cs
- BooleanAnimationUsingKeyFrames.cs
- PolyLineSegment.cs
- ActivationArguments.cs
- ResourcePart.cs
- Win32.cs
- TemplateContainer.cs
- RuleSettings.cs
- UDPClient.cs
- PropertyTab.cs
- MultipartIdentifier.cs