找不到WPF目录异常并且未加载PresentationCore.pdb

时间:2013-10-04 05:49:08

标签: c# wpf visual-studio

我正在尝试将背景图像添加到文本框但是在textChange事件中,图像会按预期消失,但是如果我退格或删除文本框中的文本以使其为空,我会得到DirectoryNotFoundException被骗了。  目录:

无法找到路径'C:\ myProjectFolder \ bin \ Debug..img \ txtBackground.png'的一部分。

XAML:

<TextBox Name="myTextBox" Width="200" TextChanged="myTextBox_TextChanged">

<TextBox.Background>
<ImageBrush ImageSource="img/txtBackground.png" />
</TextBox.Background>

C#代码:

private void myTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (myTextBox.Text == "")
{
ImageBrush textImageBrush = new ImageBrush();
textImageBrush.ImageSource =
new BitmapImage(
    new Uri(@"..img/txtBackground.png", UriKind.Relative)
);
myTextBox.Background = textImageBrush;    
}
else
{
myTextBox.Background = null;
}
}

删除了引用,重新添加它们,构建/清理解决方案并重建但没有任何内容。 只有当我尝试将背景添加到文本框时才会出现这些错误。

3 个答案:

答案 0 :(得分:1)

假设有图像的img文件夹在Project下(不在debug文件夹下,理想情况下它不应该在Debug文件夹中)并且image的BuildAction设置为Resource,你可以试试这个:

new BitmapImage(new Uri("pack://application:,,,/img/txtBackground.png", UriKind.Absolute));

如果你在调试文件夹中有img,那么你必须达到

new Uri(@"bin/Debug/img/txtBackground.png", UriKind.Relative)

答案 1 :(得分:0)

你的Uri应该阅读

new Uri(@"/img/txtBackground.png", UriKind.Relative)

至少这是错误信息所说的内容。

答案 2 :(得分:0)

你也可以试试这个:

textImageBrush.ImageSource =new BitmapImage("/Projectname;Component/img/txtBackground.png");

图片Build Action必须设为Resource