TypeConverter для FontWeight не поддерживает преобразование из строки

После установки Visual Studio 2012 и открытия проекта Silverlight 5 я получаю различные ошибки времени разработки, связанные с TypeConverter, например:

TypeConverter для FontWeight не поддерживает преобразование из строки.

TypeConverter для Point не поддерживает преобразование из строки.

TypeConverter для толщины не поддерживает преобразование из строки.

Однако это не исчерпывающий список.

Примеры:

<Setter Property="FontWeight" Value="Bold" />

<RadialGradientBrush GradientOrigin="0.5,0.5"> ...

<Setter Property="Padding" Value="0" />

Я упустил здесь что-то очевидное или это ошибка?


person Wayne Cornish    schedule 17.08.2012    source источник
comment
Я тоже понимаю - проекты создаются и выполняются нормально, но эти сообщения чрезвычайно раздражают, поскольку они загромождают представление кода XAML.   -  person Sam    schedule 13.09.2012
comment
У меня 2012 год, и я этого не понимаю, я не знаю, зачем вам - звучит как ошибка. Но я работаю в SL4 ... может быть, в SL5.   -  person Barry Franklin    schedule 29.10.2012
comment
msdn.microsoft.com/en-us/library /cc645047(v=vs.95).aspx определяет ли ваше решение какие-либо преобразователи типов или это относится к встроенным преобразователям библиотек? если вы определили свои собственные преобразователи, убедитесь, что они реализуют CanConvertFrom (ITypeDescriptorContext, Type), и он возвращает true. Если сообщения об ошибках относятся к преобразователям фреймворка / библиотеки, возможно, у вас есть связанные устаревшие библиотеки DLL. Вы пробовали это на новом компьютере, на котором когда-либо был установлен только VS2012 (не 2010)? Произойдет ли это с новым проектом SL5 или только с уже существующим, созданным в 2010 году?   -  person Tion    schedule 06.11.2012
comment
Я не определяю свои собственные преобразователи типов.   -  person Wayne Cornish    schedule 27.11.2012
comment
Упс, слишком медленно, чтобы редактировать мой вышеупомянутый комментарий: я подтвердил, что я ссылаюсь только на обновленные dll-файлы фреймворка SL5. Это также происходит на новой машине моего коллеги, на которой установлен только 2012 год. Мой проект был первоначально создан в VS2010 (SL4) и был обновлен до SL5 незадолго до перехода на VS2012. Похоже, что с новым проектом этого не происходит.   -  person Wayne Cornish    schedule 27.11.2012
comment
предполагаю, что вы можете создать ту же структуру проекта (добавить те же ссылки и файлы) в другом НОВОМ проекте в том же решении), а затем использовать WinMerge или аналогичный инструмент Diff для сравнения двух файлов проекта.   -  person George Birbilis    schedule 09.02.2014


Ответы (3)


У меня была такая же проблема: определено в разделе ресурсов

<UserControl.Resources>
  <local:MyConverter x:Key="myConverter"/>
</UserControl.Resources>

В XAML UE мне пришлось изменить

...Width="{Binding BindingProperty, Converter=myConverter}"...

to

...Width="{Binding BindingProperty, Converter={StaticResource myConverter}..."
person Dani    schedule 19.11.2012
comment
На все мои конвертеры уже ссылаются StaticResource, поэтому, к сожалению, это не исправление для меня. - person Wayne Cornish; 27.11.2012

Возникла похожая проблема:

The TypeConverter for "Thickness" does not support converting from a string

В этом файле XAML не используются преобразователи

Это серебряный проект (Prism), который был преобразован с SL4 на SL5. Но, похоже, что-то еще происходит, я также получаю такие ошибки:

The specified value cannot be assigned to the collection. The following type was expected: "Inline".

Когда TextBlock используется следующим образом:

<TextBlock>Hello</TextBlock>

Чтобы избавиться от этой ошибки:

<TextBlock Text="Hello" />

Немного громоздко запускать приложение, чтобы увидеть результат изменений XAML.

person Mojito71    schedule 29.11.2012
comment
Как обычно, в документации Windows по этому поводу отсутствуют примеры. Я сдался и просто добавил свойство, которое хочу, в свой класс, поэтому конвертер больше не нужен. Невозможно оправдать тратить на это больше времени, когда есть обходной путь. - person Paul McCarthy; 08.05.2020

У меня была такая же проблема, и это сводило меня с ума! Для меня это было связано с Silverlight Toolkit, когда я добавил, что начал получать массу этих ошибок.

В моем файле проекта (щелкните правой кнопкой мыши -> Изменить файл проекта) я сослался на dll инструментария следующим образом (относительно исходного каталога в моем случае):

<Reference Include="System.Windows.Controls.Toolkit">
    <HintPath>..\..\..\Bin\System.Windows.Controls.Toolkit.dll</HintPath>
</Reference>

Изменение его на это, похоже, отсортировало его (я не уверен, нужны ли внутренние компоненты, но новый проект с добавленным SL5 и набором инструментов, похоже, его исправил):

<Reference Include="system.windows.controls.toolkit, Version=5.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="System.Windows.Controls.Toolkit.Internals, Version=4.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

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

person John Leonard    schedule 17.09.2013