Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / MatrixTransform.cs / 1305600 / MatrixTransform.cs
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, 2001
//
// File: MatrixTransform.cs
//-----------------------------------------------------------------------------
using System.Windows.Media;
using System;
using System.Windows;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using System.Collections;
using MS.Internal;
using MS.Internal.PresentationCore;
using System.Windows.Media.Animation;
using System.Globalization;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Media.Composition;
using System.Diagnostics;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
///
/// Create an arbitrary matrix transformation.
///
public sealed partial class MatrixTransform : Transform
{
#region Constructors
///
///
///
public MatrixTransform()
{
}
///
/// Create an arbitrary matrix transformation.
///
///Matrix value at position 1,1
///Matrix value at position 1,2
///Matrix value at position 2,1
///Matrix value at position 2,2
///Matrix value at position 3,1
///Matrix value at position 3,2
public MatrixTransform(
double m11,
double m12,
double m21,
double m22,
double offsetX,
double offsetY
)
{
Matrix = new Matrix(m11, m12, m21, m22, offsetX, offsetY);
}
///
/// Create a matrix transformation from constant transform.
///
///The constant matrix transformation.
public MatrixTransform(Matrix matrix)
{
Matrix = matrix;
}
#endregion
///
/// Return the current transformation value.
///
public override Matrix Value
{
get
{
ReadPreamble();
return Matrix;
}
}
#region Internal Methods
///
/// Returns true if transformation matches the identity transform.
///
internal override bool IsIdentity
{
get
{
return Matrix.IsIdentity && CanFreeze;
}
}
internal override bool CanSerializeToString() { return CanFreeze; }
///
/// Creates a string representation of this object based on the format string
/// and IFormatProvider passed in.
/// If the provider is null, the CurrentCulture is used.
/// See the documentation for IFormattable for more information.
///
///
/// A string representation of this object.
///
internal override string ConvertToString(string format, IFormatProvider provider)
{
if (!CanSerializeToString())
{
return base.ConvertToString(format, provider);
}
return ((IFormattable)Matrix).ToString(format, provider);
}
internal override void TransformRect(ref Rect rect)
{
Matrix matrix = Matrix;
MatrixUtil.TransformRect(ref rect, ref matrix);
}
internal override void MultiplyValueByMatrix(ref Matrix result, ref Matrix matrixToMultiplyBy)
{
result = Matrix;
MatrixUtil.MultiplyMatrix(ref result, ref matrixToMultiplyBy);
}
#endregion Internal Methods
}
}
// 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
- WaitingCursor.cs
- InputMethodStateChangeEventArgs.cs
- XmlArrayAttribute.cs
- Control.cs
- HashCodeCombiner.cs
- CodeParameterDeclarationExpressionCollection.cs
- PerformanceCounterManager.cs
- RightsManagementPermission.cs
- XomlCompilerResults.cs
- X509KeyIdentifierClauseType.cs
- LicFileLicenseProvider.cs
- XPathNavigator.cs
- thaishape.cs
- Semaphore.cs
- TransportChannelFactory.cs
- BreakRecordTable.cs
- DataSourceCacheDurationConverter.cs
- LinkDesigner.cs
- KeyTime.cs
- CheckPair.cs
- XmlSchemaException.cs
- ActivityDesignerLayoutSerializers.cs
- ParseChildrenAsPropertiesAttribute.cs
- View.cs
- DesignerView.xaml.cs
- MenuItemBinding.cs
- RNGCryptoServiceProvider.cs
- CngUIPolicy.cs
- FilterableAttribute.cs
- ObjectViewFactory.cs
- HashSetDebugView.cs
- TraceListener.cs
- OutputCacheSettingsSection.cs
- LinearGradientBrush.cs
- AsyncStreamReader.cs
- TrackingSection.cs
- UpdateException.cs
- XPathBinder.cs
- XmlChildEnumerator.cs
- ObjectHandle.cs
- ListBase.cs
- ClientConfigurationSystem.cs
- HandlerFactoryCache.cs
- ParallelDesigner.cs
- XmlAttributeCollection.cs
- Attributes.cs
- webproxy.cs
- XPathNodeInfoAtom.cs
- EdmSchemaAttribute.cs
- StubHelpers.cs
- AssertFilter.cs
- Span.cs
- DynamicResourceExtensionConverter.cs
- IndependentlyAnimatedPropertyMetadata.cs
- FixUpCollection.cs
- InertiaTranslationBehavior.cs
- CheckBoxField.cs
- WhitespaceRuleLookup.cs
- CharStorage.cs
- DispatcherOperation.cs
- RpcAsyncResult.cs
- WsatEtwTraceListener.cs
- RectangleGeometry.cs
- Models.cs
- RootDesignerSerializerAttribute.cs
- RemotingHelper.cs
- SynchronizedKeyedCollection.cs
- InternalsVisibleToAttribute.cs
- SingleAnimation.cs
- ToolStripScrollButton.cs
- Subtree.cs
- OdbcFactory.cs
- BamlTreeUpdater.cs
- TextEndOfSegment.cs
- RC2CryptoServiceProvider.cs
- PoisonMessageException.cs
- ExceptionValidationRule.cs
- HtmlMobileTextWriter.cs
- WindowsHyperlink.cs
- ToggleButtonAutomationPeer.cs
- WebBodyFormatMessageProperty.cs
- precedingsibling.cs
- ConstructorExpr.cs
- StylusPointPropertyInfo.cs
- EmptyCollection.cs
- FileVersionInfo.cs
- PageTheme.cs
- Underline.cs
- MediaElementAutomationPeer.cs
- itemelement.cs
- Baml6ConstructorInfo.cs
- EventSourceCreationData.cs
- EntityConnectionStringBuilderItem.cs
- TypeSource.cs
- SafeLibraryHandle.cs
- BasicExpandProvider.cs
- WsatServiceAddress.cs
- ToolStripManager.cs
- ObjectSpanRewriter.cs
- SecurityRuntime.cs