我在下面的帖子中提出了更改后发现了新的错误。您可以找到有关错误的详细信息(请参见图1)。你知道我怎么解决这个问题吗?
http://i58.tinypic.com/qwwqvn.png
编辑: 对不起,我是新来的,所以我真的不知道情况如何。在上一篇文章中,有人建议我发一个新帖子,并附上该问题的链接。我现在将提供足够的细节,以便您了解正在发生的事情。
我有3个错误,我希望解决...
这些错误的代码发布在
下面"参数1:无法转换为' object'到'字符串'"
"参数2:无法转换为System.Windows.Media.Brush'到'字符串'"
"' Microsoft.Samples.Kinect.ControlsBasics.SelectionDisplay.SelectionDisplay(string,string)'有一些无效的参数"
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;
}
感谢您的理解,我希望这篇文章能够重新开放。
答案 0 :(得分:0)
现在,您已经通过两种不同的方式调用了SelectionDisplay的构造函数:
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
}
}
现在,您可能只想考虑一个构造函数,但是您需要确保始终使用相同的参数类型调用它。
让我知道我是否可以澄清任何事情!