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
- OverrideMode.cs
- CachedCompositeFamily.cs
- DocumentViewerBaseAutomationPeer.cs
- EntityProxyTypeInfo.cs
- PKCS1MaskGenerationMethod.cs
- GeneralTransform2DTo3D.cs
- CommandField.cs
- Rectangle.cs
- CodeGroup.cs
- Visual3DCollection.cs
- securitymgrsite.cs
- LinkLabelLinkClickedEvent.cs
- CaseInsensitiveHashCodeProvider.cs
- ControlPaint.cs
- HttpHandlerActionCollection.cs
- WindowsFormsSynchronizationContext.cs
- QuotedPrintableStream.cs
- CheckBoxPopupAdapter.cs
- BrowserInteropHelper.cs
- _FixedSizeReader.cs
- mda.cs
- IndexedWhereQueryOperator.cs
- CommonGetThemePartSize.cs
- InputDevice.cs
- Tuple.cs
- SizeLimitedCache.cs
- ToolboxControl.cs
- ConstraintCollection.cs
- NestedContainer.cs
- AdRotator.cs
- TypeName.cs
- TreeNodeClickEventArgs.cs
- DataGridViewHeaderCell.cs
- XmlStreamStore.cs
- XPathMessageFilterElementComparer.cs
- RefreshEventArgs.cs
- KnownBoxes.cs
- XmlILStorageConverter.cs
- Comparer.cs
- TextElementCollectionHelper.cs
- TimelineClockCollection.cs
- Model3DCollection.cs
- DesignerTransactionCloseEvent.cs
- FileDialog_Vista_Interop.cs
- TraceLevelStore.cs
- DesignerCalendarAdapter.cs
- RequestResizeEvent.cs
- WindowsGraphics.cs
- ChannelBinding.cs
- SmtpLoginAuthenticationModule.cs
- XpsImageSerializationService.cs
- BitmapEffect.cs
- BitmapEffectCollection.cs
- ResourceExpressionEditor.cs
- NewExpression.cs
- ResourceProviderFactory.cs
- AdapterUtil.cs
- FontSizeConverter.cs
- MultilineStringConverter.cs
- ContextBase.cs
- ListViewUpdatedEventArgs.cs
- VisualBasicSettingsHandler.cs
- XamlPoint3DCollectionSerializer.cs
- PropertyTabAttribute.cs
- Attributes.cs
- DataGridGeneralPage.cs
- DbConnectionClosed.cs
- TransactionFlowBindingElement.cs
- CodeValidator.cs
- SelectionGlyphBase.cs
- DoubleCollection.cs
- HttpWriter.cs
- CommandHelpers.cs
- UnmanagedBitmapWrapper.cs
- SqlLiftIndependentRowExpressions.cs
- CharacterShapingProperties.cs
- ConsoleKeyInfo.cs
- TimeSpanStorage.cs
- ListSortDescription.cs
- TypeResolvingOptionsAttribute.cs
- Win32Exception.cs
- ScriptServiceAttribute.cs
- UIElementHelper.cs
- _KerberosClient.cs
- SafeIUnknown.cs
- HistoryEventArgs.cs
- DbTransaction.cs
- SecurityDescriptor.cs
- XmlHierarchyData.cs
- SettingsBindableAttribute.cs
- DataSourceCacheDurationConverter.cs
- WebPartTransformerCollection.cs
- FontUnit.cs
- CollectionViewSource.cs
- SequenceDesigner.cs
- BaseDataBoundControl.cs
- SqlDataSourceConnectionPanel.cs
- SAPICategories.cs
- LocationSectionRecord.cs
- ApplicationManager.cs