C#中自定义控件与Image控件的转换,一直报错

沧海1梦 2017-10-17 04:04:42
写了一个双击事件,代码如下:
提示“错误 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);
}
}
...全文
371 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
沧海1梦 2017-10-23
  • 打赏
  • 举报
回复
引用 1 楼 njit_77 的回复:
box是System.Windows.Controls.Image ; sender是ImageView;不是同一个对象,无法强制转换的。 你需要做的应该是获取sender里面的Image信息,把这个赋值给box
谢谢了,昨天晚上解决了,把自定义控件中的属性ImageView box = sender as ImageView; 然后取出其中的Image控件,就可以了
沧海1梦 2017-10-22
  • 打赏
  • 举报
回复
引用 1 楼 njit_77 的回复:
box是System.Windows.Controls.Image ; sender是ImageView;不是同一个对象,无法强制转换的。 你需要做的应该是获取sender里面的Image信息,把这个赋值给box
您好,想问下怎么去除sender里面的Image呢,我今天试了下,没有成功,如果方便,希望您能解答下,谢谢
njit_77 2017-10-17
  • 打赏
  • 举报
回复
box是System.Windows.Controls.Image ; sender是ImageView;不是同一个对象,无法强制转换的。 你需要做的应该是获取sender里面的Image信息,把这个赋值给box

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧