我在将Visual Studio解决方案与Blend结合使用时遇到麻烦。

在运行时,编译时一切都很好。

如您在图片中看到的,Blend敦促我构建项目,但是它并不能改变情况,即使在成功构建,重新构建,清理并构建之后,它仍然相同,UI被设计者阻止了

有任何想法吗?

wpf - Blend 3在设计时找不到我的转换器/资源。(WPF)-LMLPHP

编辑:Typos已修复,问题仍然存在。

转换器代码:

namespace BlendTest
{
    public class TestConvert : IValueConverter
    {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return ((bool)value) ? Visibility.Visible : Visibility.Collapsed;
        }

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

        #endregion
    }
}



<Window
  x:Class="XP2Win7.UserInterface.ImageViewer.MainView.MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:BlendTest"
  WindowState="Maximized"
  WindowStartupLocation="CenterScreen"
  Background="Transparent"
  Title="Test">
    <Window.Resources>
        <local:TestConvert x:Key="TestConvert"/>
    </Window.Resources>
    <Grid x:Name="RootLayout" >
        <TextBlock Text="Hello" Visibility="{Binding IsMargol, Converter={StaticResource TestConvert}}" FontSize="48" FontWeight="Bold" />
    </Grid>
</Window>

谢谢
爱丽儿

最佳答案

看起来您的XAML中有错别字:

Alubm代替AlbumBlentTest代替BlendTest
我猜这些错误实际上是真正的编译器错误,更正上面的两个错字很可能会“修复”设计器。

编辑:

我看到的最可能的候选者是您的转换器与XAML文件位于单独的项目中(但在相同的解决方案中)。如果是这种情况,请确保在XAML声明中指定程序集,并确保正确引用了另一个项目(带有BlendTest)。即:

xmlns:local="clr-namespace:BlendTest;assembly:BlendTest"

如果您引用的是在其他项目中定义的类型(带有 namespace ),则程序集引用也必须存在。

关于wpf - Blend 3在设计时找不到我的转换器/资源。(WPF),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1363695/

10-13 08:24