提示“错误 5 无法将类型“QqldImp.ImageView”隐式转换为“System.Windows.Controls.Image” ,其中ImageView是自定义控件,包含一个Image和label控件
<Grid TextElement.Foreground="White">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="23*"></RowDefinition>
<RowDefinition Height="5*"></RowDefinition>
</Grid.RowDefinitions>
<!--<Grid Height="{Binding ElementName=imgScrollviewer,Path=ActualHeight}" Width="{Binding ElementName=imgScrollViewer,Path=ActualWidth}">-->
<Border BorderBrush="White" BorderThickness="0 0 0 0" Grid.Row="0">
<Image Name="SourceImg" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Stretch="Uniform"/>
</Border>
<Border Grid.Row="1">
<Label Name="LabelImg" Foreground="White" VerticalAlignment="Bottom" Height="25" HorizontalAlignment="Center" Margin="0,0,0,-2"/>
</Border>
</Grid>
</Grid>
”
void itemBox_MouseDoubleClick(object sender, System.Windows.Input.MouseEventArgs e)
{
try
{
System.Windows.Controls.Image box = sender as System.Windows.Controls.Image;
box=(ImageView)sender;(出错处)
System.Windows.MessageBox.Show("222");
try
{
string ss = box.Tag.ToString();
System.Windows.MessageBox.Show("ss" + ss);
int targetId = int.Parse(ss);
System.Windows.MessageBox.Show("targetId0:" + targetId);
this.m_Client.ShowTrackPoints(targetId);
}
catch (Exception ex)
{
log.Error(ex);
}
//System.Windows.MessageBox.Show("box:" + box.Tag.ToString());
}
catch(Exception ex)
{
log.Error(ex);
}
}
3 个解决方案
#1
box是System.Windows.Controls.Image ;
sender是ImageView;不是同一个对象,无法强制转换的。
你需要做的应该是获取sender里面的Image信息,把这个赋值给box
sender是ImageView;不是同一个对象,无法强制转换的。
你需要做的应该是获取sender里面的Image信息,把这个赋值给box
#2
您好,想问下怎么去除sender里面的Image呢,我今天试了下,没有成功,如果方便,希望您能解答下,谢谢
#3
谢谢了,昨天晚上解决了,把自定义控件中的属性ImageView box = sender as ImageView; 然后取出其中的Image控件,就可以了
#1
box是System.Windows.Controls.Image ;
sender是ImageView;不是同一个对象,无法强制转换的。
你需要做的应该是获取sender里面的Image信息,把这个赋值给box
sender是ImageView;不是同一个对象,无法强制转换的。
你需要做的应该是获取sender里面的Image信息,把这个赋值给box
#2
您好,想问下怎么去除sender里面的Image呢,我今天试了下,没有成功,如果方便,希望您能解答下,谢谢
#3
谢谢了,昨天晚上解决了,把自定义控件中的属性ImageView box = sender as ImageView; 然后取出其中的Image控件,就可以了