C# 我编译时出错
在我做了下面帖子中建议的更改之后,我遇到了一个新错误。您可以找到有关错误的详细信息,请参见图1。你知道我怎样才能解决这个问题吗 编辑: 对不起,我是新来的,所以我真的不知道事情进展如何。在上一篇文章中,有人建议我写一篇新的文章,链接到这个问题。我现在将提供足够的细节,以便您能够理解正在发生的事情 我有3个错误,我想解决 这些错误的代码发布在下面 参数1:无法从“对象”转换为“字符串” 参数2:无法从“System.Windows.Media.Brush”转换为“string” “Microsoft.Samples.Kinect.ControlsBasics.SelectionDisplay.SelectionDisplaystring,string”具有一些无效参数C# 我编译时出错,c#,wpf,C#,Wpf,在我做了下面帖子中建议的更改之后,我遇到了一个新错误。您可以找到有关错误的详细信息,请参见图1。你知道我怎样才能解决这个问题吗 编辑: 对不起,我是新来的,所以我真的不知道事情进展如何。在上一篇文章中,有人建议我写一篇新的文章,链接到这个问题。我现在将提供足够的细节,以便您能够理解正在发生的事情 我有3个错误,我想解决 这些错误的代码发布在下面 参数1:无法从“对象”转换为“字符串” 参数2:无法从“System.Windows.Media.Brush”转换为“string” “Microsof
public SelectionDisplay(string itemId, string Tag)
{
this.InitializeComponent();
this.messageTextBlock.Text = string.Format(CultureInfo.CurrentCulture,Properties.Resources.SelectedMessage,itemId);
}
var files = Directory.GetFiles(@".\GalleryImages");
foreach (var file in files)
{
FileInfo fileInfo = new FileInfo(file);
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri(file, UriKind.Relative);
bi.EndInit();
var button = new KinectTileButton
{
Label = System.IO.Path.GetFileNameWithoutExtension(file),
Background = new ImageBrush(bi),
Tag = file
};
var selectionDisplay = new SelectionDisplay(button.Label as string, button.Tag as string);
this.wrapPanel.Children.Add(button);
}
private void KinectTileButtonClick(object sender, RoutedEventArgs e)
{
var button = (KinectTileButton)e.Source;
var image = button.CommandParameter as BitmapImage;
var selectionDisplay = new SelectionDisplay(button.Label,button.Background); // aici poti apoi sa mai trimiti si imaginea ca parametru pentru constructor
this.kinectRegionGrid.Children.Add(selectionDisplay);
e.Handled = true;
}
感谢您的理解,我希望这篇文章能够重新打开。现在,您已经致电构造器进行选择显示两种不同的方式:
var selectionDisplay = new SelectionDisplay(button.Label as string, button.Tag as string);
var selectionDisplay = new SelectionDisplay(button.Label,button.Background); // aici poti apoi sa mai trimiti si imaginea ca parametru pentru constructor
第一个字符串包含两个字符串,第二个字符串包含一个对象和一个笔刷,正如您遇到的错误所指示的那样。这意味着您需要两个构造函数:
public class SelectionDisplay
{
public SelectionDisplay(string itemId, string Tag)
{
this.InitializeComponent();
this.messageTextBlock.Text = string.Format(CultureInfo.CurrentCulture,Properties.Resources.SelectedMessage,itemId);
}
public SelectionDisplay(object label, Brush background)
{
//Do stuff
}
}
现在,您可能只考虑有一个构造函数,但需要确保始终用相同的参数类型调用它。
如果我能澄清任何事情,请告诉我 您似乎只定义了一个构造函数,但使用两组不同的参数调用。要么定义这两个构造函数,要么一致地调用它。您正在传递一个笔刷,但接受一个按钮。接受画笔,如我的示例所示。我已经解决了错误,但当我点击按钮时,它没有按我所希望的那样工作,即什么也没有发生。它将打开一个新的蓝色窗口,并在该窗口中显示选定的图像。例如,如果我从图像列表中选择考拉,那么在下一个窗口中,应该显示考拉图像,并在其旁边显示一个简短的描述。请查看imagesWell,在构造函数中除了我的示例代码之外,您还需要一些东西:。提供的代码旨在解决编译问题,而不是为您编写程序!您已经有了在代码中设置图像源的代码,因此在每个构造函数中都应该这样做,并适当地更新文本。你有什么特别的东西不管用吗?任何新问题都可能是一个新问题,但您需要将范围缩小一点。