2014-08-18 2 views
1

Я сделал точно то же самое, но все же происходит одна и та же ошибка: «Тег« CenterToolTipConverter »не существует в пространстве имен XML« clr-namespace: WpfApplication1; = WpfApplication1 '. Строка 12 Позиция 10. "WPF: пытается добавить класс в Window.Resources Again

CenterToolTipConverter.cs

namespace WpfApplication1 
{ 
    public class CenterToolTipConverter : IMultiValueConverter 
    { 
     public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 
     { 
      if (values.FirstOrDefault(v => v == DependencyProperty.UnsetValue) != null) 
      { 
       return double.NaN; 
      } 
      double placementTargetWidth = (double)values[0]; 
      double toolTipWidth = (double)values[1]; 
      return (placementTargetWidth/2.0) - (toolTipWidth/2.0); 
     } 

     public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) 
     { 
      throw new NotSupportedException(); 
     } 
    } 
} 

MainWindow.xaml

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WpfApplication1;assembly=WpfApplication1" 
    Title="MainWindow" Height="350" Width="525"> 

    <Window.Resources> 
     <local:CenterToolTipConverter x:Key="myCenterToolTipConverter"/> 
    </Window.Resources> 
</Window> 

Что я делаю неправильно? Заранее спасибо!!!

+0

Is MainWindow.xaml в сборке WpfApplication1? Если это так, просто используйте 'xmlns: local =" clr-namespace: WpfApplication1 "' – clcto

ответ

0

Снять сборку, если вы имеете в виду одну и ту же сборку.

xmlns:local="clr-namespace:WpfApplication1" 

Или

xmlns:custom="clr-namespace:WpfApplication1;assembly=" 

Из MSDN: сборка может быть опущено, если CLR-пространства имен ссылки в настоящее время определяется в пределах того же узла, что и код приложения, который ссылается пользовательские классы. Или эквивалентный синтаксис для этого случая - указать assembly =, без символа строки, следующего за знаком равенства.

Надеюсь, это поможет.

+0

Спасибо, это работает. Но теперь у меня другая проблема. Когда я ссылаюсь на этот метод на ресурсе стилей, он дает сообщение «Ресурс не может быть разрешен». – user3952846

+0

@ user3952846 различные проблемы означает, что вы должны задать другой вопрос. ** Но сначала найдите, чтобы ваш вопрос еще не был отвечен. ** – clcto

+0

@clcto спасибо за ответ, я задавался вопросом, что я должен ответить на этот комментарий, хотя я не был уверен, в чем проблема. :) – ethicallogics

Смежные вопросы