0

私は私の中にStringTruncatorコンバーターを含めましたApp.Resources

xmlns:app="clr-namespace:Tabbed_Browser">

<!--Application Resources-->
<Application.Resources>

    <ResourceDictionary>
        <app:StringTruncator x:Key="StringTruncator" />
        <app:StringTruncatorFav x:Key="StringTruncatorFav" />        
        <app:AppInfo x:Key="AppInfo" />
        <app:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /       
    </ResourceDictionary>

</Application.Resources>

次に、UserControl XML で、このコードを介して参照します

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
    <TextBlock TextWrapping="NoWrap" x:Name="txtPageTitle" 
            Text="{Binding BrowserViewModel.PageTitle, Converter={StaticResource StringTruncator}}" 
            FontSize="{StaticResource PhoneFontSizeSmall}"    
            VerticalAlignment="Top"/>

は、文字列が特定の長さを超えた場合にStringTruncator追加する単純なコンバーターです。...

namespace Tabbed_Browser
{
public class StringTruncator : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value == null)
            return ""; 

        string str = value.ToString();
        int maxChars = 44;
        return str.Length <= maxChars ? str : str.Substring(0, maxChars) + "...";
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

}

しかし、その後、プロジェクトを実行すると、次のようになります。コード内のコンバーターを削除するStringTruncatorとエラーは解消されますが、コンバーターを使用する必要があります。私は何が欠けていますか?

{System.Windows.Markup.XamlParseException:
 Cannot find a Resource with the Name/Key StringTruncator [Line: 15 Position: 22]
  at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
  at Tabbed_Browser.User_Controls.UCAddressBar.InitializeComponent()
  at Tabbed_Browser.User_Controls.UCAddressBar..ctor()}
4

1 に答える 1