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
- HttpListenerPrefixCollection.cs
- RawStylusInputReport.cs
- RangeValueProviderWrapper.cs
- Model3DCollection.cs
- WarningException.cs
- AutoResizedEvent.cs
- AmbientLight.cs
- ContentType.cs
- SystemIPInterfaceStatistics.cs
- SharedPersonalizationStateInfo.cs
- EntityDataSourceSelectingEventArgs.cs
- TextRangeSerialization.cs
- PauseStoryboard.cs
- safelinkcollection.cs
- HashJoinQueryOperatorEnumerator.cs
- Soap11ServerProtocol.cs
- Expression.cs
- XmlUnspecifiedAttribute.cs
- HttpModuleActionCollection.cs
- PrintEvent.cs
- ReadWriteObjectLock.cs
- CodeVariableDeclarationStatement.cs
- DesignerOptionService.cs
- XmlKeywords.cs
- NavigatorInput.cs
- ButtonAutomationPeer.cs
- OleDbParameter.cs
- GC.cs
- GestureRecognizer.cs
- BrowserInteropHelper.cs
- ClientBuildManager.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- PropertyChangingEventArgs.cs
- InsufficientMemoryException.cs
- XamlClipboardData.cs
- Ref.cs
- MLangCodePageEncoding.cs
- SortDescriptionCollection.cs
- InternalConfigHost.cs
- xml.cs
- IgnoreDataMemberAttribute.cs
- COSERVERINFO.cs
- DesignSurface.cs
- NameSpaceExtractor.cs
- Models.cs
- MarkupCompiler.cs
- EventWaitHandleSecurity.cs
- PageContentAsyncResult.cs
- ButtonField.cs
- JsonReader.cs
- IPAddressCollection.cs
- Activity.cs
- HttpCacheVaryByContentEncodings.cs
- CodeVariableReferenceExpression.cs
- SmiXetterAccessMap.cs
- Size.cs
- BuildProvidersCompiler.cs
- CurrencyWrapper.cs
- Shape.cs
- TargetConverter.cs
- ListQueryResults.cs
- SmtpCommands.cs
- DashStyle.cs
- CodeArgumentReferenceExpression.cs
- DateRangeEvent.cs
- Base64Decoder.cs
- Configuration.cs
- TextTrailingWordEllipsis.cs
- HttpApplicationStateBase.cs
- DefaultPrintController.cs
- ValidationEventArgs.cs
- NodeInfo.cs
- XPathAncestorQuery.cs
- CodeCastExpression.cs
- DelegateCompletionCallbackWrapper.cs
- PopupControlService.cs
- WebEventCodes.cs
- PropertyEmitterBase.cs
- WebCategoryAttribute.cs
- SqlConnectionPoolProviderInfo.cs
- SchemaDeclBase.cs
- ComNativeDescriptor.cs
- AccessibleObject.cs
- OrderByQueryOptionExpression.cs
- DesignerLoader.cs
- translator.cs
- RepeatInfo.cs
- Assert.cs
- AuthStoreRoleProvider.cs
- BitmapMetadataEnumerator.cs
- TagPrefixInfo.cs
- XmlReaderSettings.cs
- ImageBrush.cs
- SocketElement.cs
- DelegatingConfigHost.cs
- CalendarDay.cs
- Util.cs
- ChannelPoolSettings.cs
- AssociationEndMember.cs
- StringKeyFrameCollection.cs