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
- AmbientProperties.cs
- HTTP_SERVICE_CONFIG_URLACL_KEY.cs
- ListControl.cs
- MarkupProperty.cs
- SettingsPropertyCollection.cs
- PriorityChain.cs
- DataGridColumn.cs
- translator.cs
- NamedPipeAppDomainProtocolHandler.cs
- ToolStripProgressBar.cs
- DataTableNewRowEvent.cs
- IPEndPoint.cs
- Match.cs
- AssemblyCollection.cs
- HttpConfigurationSystem.cs
- odbcmetadatacolumnnames.cs
- PageThemeCodeDomTreeGenerator.cs
- X509CertificateStore.cs
- MasterPageCodeDomTreeGenerator.cs
- ObjectView.cs
- DataGridViewRow.cs
- XPathSingletonIterator.cs
- SafeNativeMethods.cs
- ToolStripDropTargetManager.cs
- AutomationPropertyInfo.cs
- _LazyAsyncResult.cs
- TextPattern.cs
- WebPartsPersonalization.cs
- Int32CollectionValueSerializer.cs
- QilUnary.cs
- MaskedTextProvider.cs
- DBBindings.cs
- SqlRecordBuffer.cs
- ResourceSet.cs
- CqlParser.cs
- BitConverter.cs
- DbException.cs
- SiteMapNodeItem.cs
- FacetDescription.cs
- SqlTriggerContext.cs
- NumericUpDownAccelerationCollection.cs
- XmlSchemaExternal.cs
- XmlElementElementCollection.cs
- AnnotationHighlightLayer.cs
- ConfigurationSchemaErrors.cs
- LinkButton.cs
- Queue.cs
- CurrentChangingEventArgs.cs
- InvokeDelegate.cs
- ServiceInfoCollection.cs
- InstanceDescriptor.cs
- JapaneseLunisolarCalendar.cs
- ScrollPatternIdentifiers.cs
- AsyncContentLoadedEventArgs.cs
- EdgeModeValidation.cs
- MobileCategoryAttribute.cs
- AvtEvent.cs
- IconConverter.cs
- ZoneButton.cs
- MembershipValidatePasswordEventArgs.cs
- SplitterCancelEvent.cs
- IImplicitResourceProvider.cs
- DataGridViewTopRowAccessibleObject.cs
- RenderData.cs
- UInt64Storage.cs
- WebZone.cs
- SqlDependencyUtils.cs
- TextCollapsingProperties.cs
- ClientBuildManagerCallback.cs
- ObfuscateAssemblyAttribute.cs
- KeyboardNavigation.cs
- Switch.cs
- PermissionRequestEvidence.cs
- XmlChildNodes.cs
- __Error.cs
- ValidatedControlConverter.cs
- RangeValidator.cs
- KeySpline.cs
- VisualTreeUtils.cs
- TextBlock.cs
- Sorting.cs
- MissingSatelliteAssemblyException.cs
- IncrementalHitTester.cs
- CurrentChangedEventManager.cs
- StrongNameMembershipCondition.cs
- NamespaceTable.cs
- FormViewInsertEventArgs.cs
- ColumnWidthChangedEvent.cs
- Addressing.cs
- __Filters.cs
- ListContractAdapter.cs
- TextParentUndoUnit.cs
- CatalogZoneBase.cs
- GacUtil.cs
- EntityCommand.cs
- StubHelpers.cs
- UIElement.cs
- BufferBuilder.cs
- SqlMethodAttribute.cs
- MgmtConfigurationRecord.cs