Code:
/ 4.0 / 4.0 / 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. /*++ 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
- SelectionHighlightInfo.cs
- ImageButton.cs
- WebPartDisplayMode.cs
- IndicCharClassifier.cs
- RIPEMD160.cs
- securitymgrsite.cs
- RightNameExpirationInfoPair.cs
- WebPartHelpVerb.cs
- RuntimeConfig.cs
- PropertyEmitterBase.cs
- OracleCommand.cs
- AppLevelCompilationSectionCache.cs
- ParameterModifier.cs
- Application.cs
- InputProcessorProfiles.cs
- COM2AboutBoxPropertyDescriptor.cs
- SqlDataReader.cs
- QilIterator.cs
- PlanCompilerUtil.cs
- OdbcDataReader.cs
- WindowsStatusBar.cs
- InertiaTranslationBehavior.cs
- SvcMapFileLoader.cs
- StateFinalizationActivity.cs
- ExpressionBuilderCollection.cs
- _DigestClient.cs
- MailWriter.cs
- PathFigureCollection.cs
- StreamWriter.cs
- Thread.cs
- XmlDataProvider.cs
- XmlSchemaAnnotated.cs
- UnsafeNativeMethods.cs
- TreeView.cs
- ADMembershipUser.cs
- UpWmlMobileTextWriter.cs
- ControlUtil.cs
- DirtyTextRange.cs
- WebPartDeleteVerb.cs
- LineGeometry.cs
- ActivitiesCollection.cs
- DigitShape.cs
- WorkflowNamespace.cs
- CompatibleComparer.cs
- ItemsControl.cs
- StringResourceManager.cs
- TaiwanLunisolarCalendar.cs
- ChainOfDependencies.cs
- FixedDSBuilder.cs
- ModuleBuilder.cs
- KnownColorTable.cs
- TreeBuilder.cs
- UriPrefixTable.cs
- CollaborationHelperFunctions.cs
- AlphabeticalEnumConverter.cs
- ResourceExpressionBuilder.cs
- BoundColumn.cs
- HelpKeywordAttribute.cs
- SourceChangedEventArgs.cs
- PageCodeDomTreeGenerator.cs
- ContentFileHelper.cs
- VectorCollection.cs
- NavigationPropertyEmitter.cs
- Nullable.cs
- _LoggingObject.cs
- ActivityExecutionContext.cs
- HtmlElementEventArgs.cs
- OpacityConverter.cs
- InternalSafeNativeMethods.cs
- ValidationRule.cs
- DependencyObjectProvider.cs
- DBParameter.cs
- TypeViewSchema.cs
- CompilerWrapper.cs
- GuidelineCollection.cs
- FunctionUpdateCommand.cs
- SchemaRegistration.cs
- UniqueIdentifierService.cs
- FrameworkElementFactory.cs
- ObjectDataSourceFilteringEventArgs.cs
- WinEventHandler.cs
- ResolveResponse.cs
- ExtensionQuery.cs
- GcHandle.cs
- SpeechUI.cs
- MenuItemStyle.cs
- IdnElement.cs
- PrintDocument.cs
- Cloud.cs
- PersonalizationEntry.cs
- CookielessData.cs
- DataList.cs
- UpdatePanelControlTrigger.cs
- PersonalizableTypeEntry.cs
- NumericPagerField.cs
- ETagAttribute.cs
- TypeUtil.cs
- RightNameExpirationInfoPair.cs
- ValueExpressions.cs
- ScriptingAuthenticationServiceSection.cs