我在使用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>
谢谢Ariel
看起来你的XAML中有拼写错误:
Alubm
而不是Album
和BlentTest
而不是BlendTest
我猜错误实际上是真正的编译错误,纠正上面的两个错别字很可能“修复”设计师。
编辑:
我看到的最有可能的候选者是您的转换器与XAML文件位于一个单独的项目中(但在同一解决方案中)。如果是这种情况,请确保在XAML声明中指定程序集,并确保正确引用其他项目(使用BlendTest)。即:
xmlns:local="clr-namespace:BlendTest;assembly:BlendTest"
如果引用在不同项目中定义的类型(带命名空间),则程序集引用也需要存在。
好吧,虽然问题的原因我仍然不知道。
混乱的解决方案如下:
就是这样。
阿里尔
This answer为我修复了它:我将'Platform Target'重置为'Any CPU'。
什么对我有用?
将构建输出路径从bin / x86 / Debug更改为bin / Debug对我有用。但由于我的平台目标被设置为'x86',所以仍然没有任何意义。所以我决定更多地讨论这个问题,发现下拉列表'x86'中的平台选择没有反映项目配置文件中设置的'Value'。
我在VS中卸载了Project,在编辑器中打开了.csproj文件以查看“Platform”的值是什么。令我惊讶的是,它被设置为'Any CPU',而构建选项下的下拉列表显示'x86'。我所做的就是手动编辑.csproj文件以读取'x86'。
以下是要解决的步骤: