Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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: [....] - 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
- WebHttpElement.cs
- AnnotationResourceCollection.cs
- WorkflowDispatchContext.cs
- WebPartConnectionsConnectVerb.cs
- PngBitmapDecoder.cs
- OdbcConnectionPoolProviderInfo.cs
- DataAccessor.cs
- ReadOnlyKeyedCollection.cs
- PropertyIDSet.cs
- EntityDataSourceViewSchema.cs
- PermissionRequestEvidence.cs
- ReturnValue.cs
- TracedNativeMethods.cs
- TransactionTable.cs
- UpdatePanel.cs
- ParameterCollection.cs
- FileDialog_Vista_Interop.cs
- TextTreeInsertElementUndoUnit.cs
- LazyTextWriterCreator.cs
- PieceNameHelper.cs
- DrawingServices.cs
- Constant.cs
- AlgoModule.cs
- ReadOnlyMetadataCollection.cs
- HtmlInputText.cs
- SecurityUtils.cs
- IpcClientManager.cs
- PerfService.cs
- followingsibling.cs
- WinInet.cs
- PerfProviderCollection.cs
- Deserializer.cs
- HtmlAnchor.cs
- Vector.cs
- DataGridCellAutomationPeer.cs
- RuleConditionDialog.Designer.cs
- InheritedPropertyChangedEventArgs.cs
- BufferedStream.cs
- Parameter.cs
- RectangleGeometry.cs
- AttributeEmitter.cs
- ToolStripMenuItem.cs
- TextSpan.cs
- TextElementAutomationPeer.cs
- EpmCustomContentWriterNodeData.cs
- ChunkedMemoryStream.cs
- StandardRuntimeEnumValidatorAttribute.cs
- LoadedEvent.cs
- PersonalizationProviderCollection.cs
- Bidi.cs
- MessageDecoder.cs
- RootDesignerSerializerAttribute.cs
- StylusPointPropertyInfo.cs
- ResXFileRef.cs
- WebPartConnectionsConfigureVerb.cs
- EdgeProfileValidation.cs
- StackBuilderSink.cs
- ThemeInfoAttribute.cs
- DataGridViewColumnEventArgs.cs
- XmlDataSource.cs
- KeyBinding.cs
- MsdtcClusterUtils.cs
- RectAnimationClockResource.cs
- EntityDataSourceDataSelection.cs
- ObjectSet.cs
- EventProviderClassic.cs
- Rotation3DAnimation.cs
- StackBuilderSink.cs
- InvalidOperationException.cs
- IconHelper.cs
- FixedFlowMap.cs
- Helpers.cs
- WindowsIPAddress.cs
- Compress.cs
- GridPatternIdentifiers.cs
- AutomationIdentifierGuids.cs
- DocumentPageHost.cs
- HashCodeCombiner.cs
- ButtonField.cs
- DocobjHost.cs
- CollectionConverter.cs
- Content.cs
- InfoCardSymmetricAlgorithm.cs
- XmlQuerySequence.cs
- ToolStripPanel.cs
- DataGridBoundColumn.cs
- AspNetSynchronizationContext.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- GridErrorDlg.cs
- XmlSchemaObject.cs
- MinMaxParagraphWidth.cs
- XmlRawWriter.cs
- SymmetricKeyWrap.cs
- SafeEventLogWriteHandle.cs
- PolicyUnit.cs
- URLString.cs
- CodeSnippetExpression.cs
- OperationInvokerBehavior.cs
- RegionInfo.cs
- Helpers.cs