Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / View / BreadCrumbTextConverter.cs / 1305376 / BreadCrumbTextConverter.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.Activities.Presentation.View
{
using System.Windows.Data;
using System.Activities.Presentation.Model;
internal class BreadCrumbTextConverter : IMultiValueConverter
{
const int MaxDisplayNameLength = 20;
double pixelsPerChar = 6.5;
internal double PixelsPerChar
{
get { return this.pixelsPerChar; }
set { this.pixelsPerChar = Math.Max(5.0, value); }
}
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int actualDisplayNameLength = MaxDisplayNameLength;
ModelItem boundModelItem = values[0] as ModelItem;
// default to root item's typename
string breadCrumbText = (null != boundModelItem ? boundModelItem.ItemType.Name : "");
// if there is a display name property on root use that as the file name.
if (values[1] is ModelItem)
{
ModelItem displayNameProperty = (ModelItem)values[1];
if (typeof(string) == displayNameProperty.ItemType)
{
values[1] = displayNameProperty.GetCurrentValue();
}
}
if (values[1] is string)
{
string displayName = (string)values[1];
if (!displayName.Equals(string.Empty))
{
breadCrumbText = displayName;
}
}
if (values.Length == 3 && values[2] is double)
{
double actualControlWidth = (double)values[2];
actualDisplayNameLength = (int)Math.Max(MaxDisplayNameLength, actualControlWidth / pixelsPerChar);
}
if (breadCrumbText.Length > actualDisplayNameLength)
{
breadCrumbText = breadCrumbText.Substring(0, actualDisplayNameLength - 3) + "...";
}
return breadCrumbText;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw FxTrace.Exception.AsError(new InvalidOperationException());
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.Activities.Presentation.View
{
using System.Windows.Data;
using System.Activities.Presentation.Model;
internal class BreadCrumbTextConverter : IMultiValueConverter
{
const int MaxDisplayNameLength = 20;
double pixelsPerChar = 6.5;
internal double PixelsPerChar
{
get { return this.pixelsPerChar; }
set { this.pixelsPerChar = Math.Max(5.0, value); }
}
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int actualDisplayNameLength = MaxDisplayNameLength;
ModelItem boundModelItem = values[0] as ModelItem;
// default to root item's typename
string breadCrumbText = (null != boundModelItem ? boundModelItem.ItemType.Name : "");
// if there is a display name property on root use that as the file name.
if (values[1] is ModelItem)
{
ModelItem displayNameProperty = (ModelItem)values[1];
if (typeof(string) == displayNameProperty.ItemType)
{
values[1] = displayNameProperty.GetCurrentValue();
}
}
if (values[1] is string)
{
string displayName = (string)values[1];
if (!displayName.Equals(string.Empty))
{
breadCrumbText = displayName;
}
}
if (values.Length == 3 && values[2] is double)
{
double actualControlWidth = (double)values[2];
actualDisplayNameLength = (int)Math.Max(MaxDisplayNameLength, actualControlWidth / pixelsPerChar);
}
if (breadCrumbText.Length > actualDisplayNameLength)
{
breadCrumbText = breadCrumbText.Substring(0, actualDisplayNameLength - 3) + "...";
}
return breadCrumbText;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw FxTrace.Exception.AsError(new InvalidOperationException());
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Stylesheet.cs
- FixedFlowMap.cs
- NetworkCredential.cs
- VoiceObjectToken.cs
- ChtmlTextWriter.cs
- PolyQuadraticBezierSegment.cs
- SqlRemoveConstantOrderBy.cs
- ArgIterator.cs
- WebPartEditorOkVerb.cs
- PriorityBindingExpression.cs
- IPHostEntry.cs
- FtpWebRequest.cs
- ManagedFilter.cs
- Page.cs
- ReturnType.cs
- PaperSize.cs
- DesignerOptionService.cs
- BaseDataBoundControl.cs
- TypeUnloadedException.cs
- WebColorConverter.cs
- DataGridViewCellValueEventArgs.cs
- BamlMapTable.cs
- TextRange.cs
- DecimalConstantAttribute.cs
- SectionXmlInfo.cs
- BindingOperations.cs
- SemanticBasicElement.cs
- SafeLibraryHandle.cs
- XmlIlTypeHelper.cs
- ThreadPool.cs
- SqlConnectionStringBuilder.cs
- ServiceModelEnhancedConfigurationElementCollection.cs
- FlowDocumentReader.cs
- SafeFindHandle.cs
- RawStylusInputReport.cs
- InternalBufferOverflowException.cs
- ExpressionNode.cs
- DBAsyncResult.cs
- ToolBar.cs
- FileSystemWatcher.cs
- SaveFileDialog.cs
- SimpleLine.cs
- ReadOnlyHierarchicalDataSource.cs
- DocumentSequenceHighlightLayer.cs
- ToolStripRenderEventArgs.cs
- RegexCode.cs
- PenCursorManager.cs
- TreeNodeConverter.cs
- RequestCachePolicy.cs
- UpdateException.cs
- WhitespaceRuleReader.cs
- Compiler.cs
- BaseTemplateBuildProvider.cs
- Regex.cs
- BamlRecordWriter.cs
- FindRequestContext.cs
- ControlBuilderAttribute.cs
- MsmqIntegrationOutputChannel.cs
- FlowDocumentReader.cs
- PageClientProxyGenerator.cs
- SqlConnectionHelper.cs
- ScrollChrome.cs
- InputScope.cs
- StructuredTypeEmitter.cs
- SystemIcmpV4Statistics.cs
- SystemException.cs
- StructuralCache.cs
- Executor.cs
- PackageRelationshipCollection.cs
- SqlPersonalizationProvider.cs
- HebrewNumber.cs
- NotificationContext.cs
- AccessibleObject.cs
- Compress.cs
- DPCustomTypeDescriptor.cs
- RegistrationServices.cs
- ByteAnimationUsingKeyFrames.cs
- ListControl.cs
- UnsafeNetInfoNativeMethods.cs
- IDictionary.cs
- SaveRecipientRequest.cs
- GridViewCellAutomationPeer.cs
- DataGridViewBindingCompleteEventArgs.cs
- ObjectStateManagerMetadata.cs
- autovalidator.cs
- IncrementalReadDecoders.cs
- SiteIdentityPermission.cs
- AutomationTextAttribute.cs
- TextFormatterHost.cs
- ConfigurationFileMap.cs
- RawStylusInput.cs
- GridItemPatternIdentifiers.cs
- X500Name.cs
- CommandSet.cs
- XmlSchemaComplexContentExtension.cs
- GenerateHelper.cs
- RoleExceptions.cs
- SHA512Managed.cs
- SourceLocationProvider.cs
- SvcFileManager.cs