Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / ImageBrush.cs / 1 / ImageBrush.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: This file contains the implementation of ImageBrush. // The ImageBrush is a TileBrush which defines its tile content // by use of an ImageSource. // // History: // // 04/29/2003 : [....] - Created it. // 01/19/2005 : [....] - Removed SizeViewboxToContent. Moved UpdateResource // to the generated file. //--------------------------------------------------------------------------- using MS.Internal; using MS.Internal.PresentationCore; using System; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Reflection; 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; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Media { ////// ImageBrush - This TileBrush defines its content as an Image /// public sealed partial class ImageBrush : TileBrush { #region Constructors ////// Default constructor for ImageBrush. The resulting Brush has no content. /// public ImageBrush() { // We do this so that the property, when read, is consistent - not that // this will every actually affect drawing. } ////// ImageBrush Constructor where the image is set to the parameter's value /// /// The image source. public ImageBrush(ImageSource image) { ImageSource = image; } #endregion Constructors #region Protected methods ////// This node can introduce graphness /// internal override bool CanIntroduceGraphness() { if (ImageSource == null) { // If we don't have an ImageSource, we can't introduce // graphness right now, if we get an image source later // we'll precompute again. return false; } else { if (ImageSource.CanIntroduceGraphness()) { return true; } else { return false; } } } ////// Obtains the current bounds of the brush's content /// /// Output bounds of content protected override void GetContentBounds(out Rect contentBounds) { // Note, only implemented for DrawingImages. contentBounds = Rect.Empty; DrawingImage di = ImageSource as DrawingImage; if (di != null) { Drawing drawing = di.Drawing; if (drawing != null) { contentBounds = drawing.Bounds; } } } #endregion Protected methods #region Realization Support ////// Precompute is called during the frame preparation phase. Derived classes /// typically check if the brush requires realizations during this phase. /// internal override void Precompute() { ImageSource imageSource = ImageSource; if (imageSource != null) { imageSource.Precompute(); _requiresRealizationUpdates = imageSource.RequiresRealizationUpdates; } else { _requiresRealizationUpdates = false; } } ////// Checks if realization updates are required 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(Rect fillShapeBounds, RealizationContext ctx) { if (_requiresRealizationUpdates) { Matrix m; ImageSource imageSource = ImageSource; Debug.Assert(imageSource != null); // Otherwise _requiresRealizationUpdates would be false. GetTileBrushMapping(fillShapeBounds, out m); ctx.TransformStack.Push(ref m, true); imageSource.UpdateRealizations(ctx); ctx.TransformStack.Pop(); } } #endregion 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
- MatrixKeyFrameCollection.cs
- ItemsPresenter.cs
- DataBoundLiteralControl.cs
- SettingsPropertyValueCollection.cs
- TransactionState.cs
- TextTreeNode.cs
- SqlMethods.cs
- _CookieModule.cs
- Visitor.cs
- MarkupProperty.cs
- NavigationWindowAutomationPeer.cs
- StylusPointPropertyUnit.cs
- AssertFilter.cs
- GridViewPageEventArgs.cs
- SchemaConstraints.cs
- IndexerNameAttribute.cs
- CodeSnippetExpression.cs
- GridLengthConverter.cs
- DataObjectCopyingEventArgs.cs
- ExtendedPropertyDescriptor.cs
- MenuItemStyleCollection.cs
- _StreamFramer.cs
- SQLResource.cs
- MetadataItem_Static.cs
- DbgCompiler.cs
- OracleRowUpdatedEventArgs.cs
- SolidColorBrush.cs
- RichTextBoxDesigner.cs
- PDBReader.cs
- DecimalConverter.cs
- ActivitySurrogateSelector.cs
- WebPartConnectionsConnectVerb.cs
- InkCanvasInnerCanvas.cs
- FontStretches.cs
- SystemTcpStatistics.cs
- HttpVersion.cs
- WindowsGraphicsCacheManager.cs
- ParamArrayAttribute.cs
- DataGridPageChangedEventArgs.cs
- BamlLocalizableResourceKey.cs
- SortExpressionBuilder.cs
- FormatterServicesNoSerializableCheck.cs
- ListViewHitTestInfo.cs
- SmiEventStream.cs
- DefaultEventAttribute.cs
- UndoEngine.cs
- ContentValidator.cs
- XmlSchemas.cs
- HttpModuleAction.cs
- DropShadowBitmapEffect.cs
- SignatureTargetIdManager.cs
- WebBrowsableAttribute.cs
- ProfileManager.cs
- TimerEventSubscriptionCollection.cs
- SettingsPropertyWrongTypeException.cs
- SystemResources.cs
- LongCountAggregationOperator.cs
- Vector3DAnimation.cs
- ProfilePropertyNameValidator.cs
- LinkedResourceCollection.cs
- InkSerializer.cs
- ContentOperations.cs
- AssemblyBuilder.cs
- ImageMapEventArgs.cs
- _BaseOverlappedAsyncResult.cs
- PrintDialog.cs
- XhtmlStyleClass.cs
- WorkflowViewStateService.cs
- XsltCompileContext.cs
- ScrollViewerAutomationPeer.cs
- PointKeyFrameCollection.cs
- DataSvcMapFileSerializer.cs
- TableRow.cs
- ToolStripStatusLabel.cs
- ExclusiveTcpListener.cs
- SqlRewriteScalarSubqueries.cs
- RuntimeUtils.cs
- TableDetailsCollection.cs
- ServerIdentity.cs
- PropertyManager.cs
- ProcessDesigner.cs
- BulletedListEventArgs.cs
- WindowsFormsHost.cs
- DelegateSerializationHolder.cs
- RtfToXamlLexer.cs
- InstallerTypeAttribute.cs
- ComboBox.cs
- AsyncOperationManager.cs
- SamlAuthenticationStatement.cs
- PictureBoxDesigner.cs
- CapabilitiesState.cs
- TimerEventSubscriptionCollection.cs
- CorrelationService.cs
- SqlRewriteScalarSubqueries.cs
- SecuritySessionSecurityTokenProvider.cs
- ListControlActionList.cs
- ItemsPresenter.cs
- XmlDocumentType.cs
- PolyLineSegment.cs
- TableMethodGenerator.cs