File: System\Activities\Core\Presentation\HintTextMaxWidthConverter.cs
Project: ndp\cdf\src\NetFx40\Tools\System.Activities.Core.Presentation\System.Activities.Core.Presentation.csproj (System.Activities.Core.Presentation)
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//----------------------------------------------------------------
 
namespace System.Activities.Core.Presentation
{
    using System;
    using System.Diagnostics.CodeAnalysis;
    using System.Globalization;
    using System.Windows;
    using System.Windows.Data;
 
    [SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")]
    internal sealed class HintTextMaxWidthConverter : IValueConverter
    {
        public object Convert(object o, Type targetType, object parameter, CultureInfo culture)
        {
            // If o == null, this means the Activity inside Default/Cases is null.
            // We need to show SR.ClickToAdd instruction as a whole string without trim.
            // So we need to set the MaxWidth to double.PositiveInfinity. Otherwise, we
            // set it according to the parameter and TextBlock will do proper trimming.
            double maxWidth = double.Parse(parameter as string, CultureInfo.InvariantCulture.NumberFormat);
            return o != null ? maxWidth : DependencyProperty.UnsetValue;
        }
 
        public object ConvertBack(object o, Type targetType, object parameter, CultureInfo culture)
        {
            throw FxTrace.Exception.AsError(new NotImplementedException());
        }
 
    }
}