Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / DrawingImage.cs / 1 / DrawingImage.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: DrawingImage class // An ImageSource with a Drawing for content // // // History: // 05/26/2005 : jordanpa - Created it // //--------------------------------------------------------------------------- using MS.Internal; using System; using System.ComponentModel; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Media.Imaging; namespace System.Windows.Media { ////// The class definition for DrawingImage /// public sealed partial class DrawingImage : ImageSource { ////// Default DrawingImage ctor /// public DrawingImage() { } ////// DrawingImage ctor that takes a Drawing /// /// The content of the DrawingImage public DrawingImage(Drawing drawing) { Drawing = drawing; } ////// Width of the DrawingImage /// public override double Width { get { ReadPreamble(); return Size.Width; } } ////// Height of the DrawingImage /// public override double Height { get { ReadPreamble(); return Size.Height; } } ////// Get the Metadata of the DrawingImage /// public override ImageMetadata Metadata { get { ReadPreamble(); // DrawingImage does not have any metadata currently defined. return null; } } ////// Size for the DrawingImage /// internal override Size Size { get { Drawing drawing = Drawing; if (drawing != null) { Size size = drawing.GetBounds().Size; if (!size.IsEmpty) { return size; } else { return new Size(); } } else { return new Size(); } } } ////// Precompute is called during the frame preparation phase. Derived classes /// typically check if the brush requires realizations during this phase. /// internal override void Precompute() { Drawing drawing = Drawing; _requiresRealizationUpdates = false; if (drawing != null) { drawing.PrecomputeCore(); _requiresRealizationUpdates = drawing.RequiresRealizationUpdates; } } ////// Checks if realization updates are requried for this resource. /// internal override bool RequiresRealizationUpdates { get { return _requiresRealizationUpdates; } } ////// Derived classes must override this method and update realizations on dependent /// resources if required. /// internal override void UpdateRealizations(RealizationContext ctx) { if (_requiresRealizationUpdates) { Drawing drawing = Drawing; Debug.Assert(drawing != null); // Otherwise _requiresRealizationUpdates would be false. drawing.UpdateRealizations(ctx); } } ////// This node can introduce graphness /// internal override bool CanIntroduceGraphness() { return true; } private bool _requiresRealizationUpdates; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: DrawingImage class // An ImageSource with a Drawing for content // // // History: // 05/26/2005 : jordanpa - Created it // //--------------------------------------------------------------------------- using MS.Internal; using System; using System.ComponentModel; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Media.Imaging; namespace System.Windows.Media { ////// The class definition for DrawingImage /// public sealed partial class DrawingImage : ImageSource { ////// Default DrawingImage ctor /// public DrawingImage() { } ////// DrawingImage ctor that takes a Drawing /// /// The content of the DrawingImage public DrawingImage(Drawing drawing) { Drawing = drawing; } ////// Width of the DrawingImage /// public override double Width { get { ReadPreamble(); return Size.Width; } } ////// Height of the DrawingImage /// public override double Height { get { ReadPreamble(); return Size.Height; } } ////// Get the Metadata of the DrawingImage /// public override ImageMetadata Metadata { get { ReadPreamble(); // DrawingImage does not have any metadata currently defined. return null; } } ////// Size for the DrawingImage /// internal override Size Size { get { Drawing drawing = Drawing; if (drawing != null) { Size size = drawing.GetBounds().Size; if (!size.IsEmpty) { return size; } else { return new Size(); } } else { return new Size(); } } } ////// Precompute is called during the frame preparation phase. Derived classes /// typically check if the brush requires realizations during this phase. /// internal override void Precompute() { Drawing drawing = Drawing; _requiresRealizationUpdates = false; if (drawing != null) { drawing.PrecomputeCore(); _requiresRealizationUpdates = drawing.RequiresRealizationUpdates; } } ////// Checks if realization updates are requried for this resource. /// internal override bool RequiresRealizationUpdates { get { return _requiresRealizationUpdates; } } ////// Derived classes must override this method and update realizations on dependent /// resources if required. /// internal override void UpdateRealizations(RealizationContext ctx) { if (_requiresRealizationUpdates) { Drawing drawing = Drawing; Debug.Assert(drawing != null); // Otherwise _requiresRealizationUpdates would be false. drawing.UpdateRealizations(ctx); } } ////// This node can introduce graphness /// internal override bool CanIntroduceGraphness() { return true; } private bool _requiresRealizationUpdates; } } // 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
- ReflectPropertyDescriptor.cs
- PeerEndPoint.cs
- RequestQueryParser.cs
- PageRanges.cs
- HierarchicalDataSourceConverter.cs
- EntityModelBuildProvider.cs
- QfeChecker.cs
- HttpEncoder.cs
- OdbcConnectionHandle.cs
- ProviderSettingsCollection.cs
- GridViewCancelEditEventArgs.cs
- BrowserCapabilitiesCodeGenerator.cs
- SynchronizationFilter.cs
- ToolStripPanelSelectionBehavior.cs
- PrivateFontCollection.cs
- RoutingTable.cs
- TokenBasedSetEnumerator.cs
- ComponentChangingEvent.cs
- HtmlAnchor.cs
- ObfuscateAssemblyAttribute.cs
- Nodes.cs
- TableParaClient.cs
- FtpWebRequest.cs
- ObjectStateEntryDbDataRecord.cs
- DrawingVisualDrawingContext.cs
- ValidationPropertyAttribute.cs
- Comparer.cs
- EllipseGeometry.cs
- ISSmlParser.cs
- Quaternion.cs
- KeyValueSerializer.cs
- ScriptControlDescriptor.cs
- WebConfigurationHostFileChange.cs
- Int32.cs
- ResourceReferenceKeyNotFoundException.cs
- FontDialog.cs
- MimeBasePart.cs
- DbTransaction.cs
- BitVec.cs
- CommonRemoteMemoryBlock.cs
- ReferenceAssemblyAttribute.cs
- TextBounds.cs
- EditorZoneBase.cs
- AsymmetricSignatureFormatter.cs
- SmiXetterAccessMap.cs
- Utility.cs
- KnownTypes.cs
- ConnectionPoint.cs
- XPathPatternBuilder.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- WinFormsUtils.cs
- StylusOverProperty.cs
- HelpFileFileNameEditor.cs
- Hashtable.cs
- ActiveDesignSurfaceEvent.cs
- KnownTypesProvider.cs
- IListConverters.cs
- SqlTriggerContext.cs
- PeerInputChannel.cs
- SessionStateItemCollection.cs
- Material.cs
- DynamicEntity.cs
- SQLCharsStorage.cs
- XmlDocumentSchema.cs
- Privilege.cs
- FixedTextContainer.cs
- CheckBox.cs
- ProcessModelSection.cs
- KerberosReceiverSecurityToken.cs
- ToolStripDropDownButton.cs
- ErrorRuntimeConfig.cs
- TreeChangeInfo.cs
- HtmlMeta.cs
- GlobalizationAssembly.cs
- RoleBoolean.cs
- ImportCatalogPart.cs
- HijriCalendar.cs
- MaterialGroup.cs
- messageonlyhwndwrapper.cs
- DockAndAnchorLayout.cs
- BooleanAnimationBase.cs
- DesignerOptionService.cs
- Clock.cs
- CatalogPartCollection.cs
- SchemaMapping.cs
- EntityClassGenerator.cs
- JsonGlobals.cs
- CollectionChangeEventArgs.cs
- DoubleLinkList.cs
- PropertyGroupDescription.cs
- SchemaElementLookUpTable.cs
- ListViewContainer.cs
- Rectangle.cs
- DataGridLength.cs
- remotingproxy.cs
- FileDetails.cs
- LinkedList.cs
- ActivityMetadata.cs
- TraceContext.cs
- CultureTable.cs