3

我在将 Blend 与我的 Visual Studio 解决方案一起使用时遇到了麻烦。

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

正如你在图片中看到的,Blend 敦促我构建项目,但它并没有改变这种情况,即使在成功构建、重建、清理和构建之后,它仍然是一样的,UI 被设计师屏蔽了

有任何想法吗?

替代文字

编辑:错别字已修复,问题仍然存在。

转换器代码:

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>

谢谢爱丽儿

4

4 回答 4

0

看起来您的 XAML 中有拼写错误:

Alubm代替AlbumBlentTest代替BlendTest

我猜这些错误实际上是真正的编译器错误,更正上面的两个拼写错误很可能会“修复”设计师。


编辑:

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

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

如果您引用在不同项目中定义的类型(带有命名空间),则程序集引用也需要存在。

于 2009-09-01T17:42:46.137 回答
0

什么对我有用?

将构建输出路径从 bin/x86/Debug 更改为 bin/Debug 对我有用。但仍然没有任何意义,因为我的平台目标设置为“x86”。所以我决定更多地关注这个问题,发现下拉“x86”中的平台选择没有反映项目配置文件中设置的“值”。

我在 VS 中卸载了项目,在编辑器中打开了 .csproj 文件以查看“平台”的值是什么。令我惊讶的是,它设置为“任何 CPU”,而构建选项下的下拉菜单显示“x86”。我所做的只是手动编辑 .csproj 文件以读取“x86”。

以下是解决的步骤:

  • 右键单击VS项目
  • 卸下
  • 右键单击并编辑 .csproj 文件
  • 确保“平台”设置为正确的
于 2013-02-06T21:26:08.290 回答
0

好吧,虽然我仍然不知道问题的原因。

混乱的解决方案如下:

  1. 我创建了一个新的代码库项目,并将我的所有控件和转换器移到那里。

  2. 我使用 XmlnsDefinition 属性来装饰程序集,因此每个都对应于相同的命名空间。

  3. 修复所有参考。

瞧。

爱丽儿

于 2009-09-03T11:09:01.940 回答
0

这个答案为我解决了这个问题:我将“平台目标”重置为“任何 CPU”。

于 2011-12-16T02:57:59.507 回答