wpf或HTML5里插入图片,在图片上做标记,点击标记触发事件

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-22
HTML5 给图片对象添加事件

你的意思是用canvas2D绘制是吧?
实际上,拿canvas2D绘制,只是把image渲染到 canvas(画布上).而实际的事件,就不能像标签那么处理,应该对canvas的事件做处理.
实现逻辑是这样:
1,添加事件监听,比如说,鼠标按下 做什么,滑动 做什么,弹起做什么.一般鼠标事件都是判断弹起的位置
2,判断有效坐标,在事件中判断坐标位置是否在图片位置,也就是图片在canvas的位置.

ex:
//some code...
canvas.width=400;
canvas.height=400;

var context2d = canvas.getContext("2d");


var img =new Image();
img.src="xxx/xxx.png";
img.onload=function(){
context2d.drawImage(img,X,Y,WIDTH,HEIGTH);
//X=0,Y=0,W=50,H=50
canvas.addEventListener("mouseup", keyUp, false);
}

function keyUp(evt){
Event_UpX = evt.offsetX;
Event_UpY = evt.offsetY;
if(Event_UpX>=绘制坐标X&&Event_UpX<=图片宽度){
if(Event_UpY>=绘制坐标Y&&Event_UpY<=图片高度){
//do something
}
}
}

首先要给图片添加一个Id,之后在jquery中写如下代码:
$("#图片ID").click(function(){
alert("aa”);
});
或者
$("#图片ID").bind("click",function(){
alert("aa");
});

扩展资料:
Click 事件实际应用:
此事件是在一个对象上按下然后释放一个鼠标按钮时发生。它也会发生在一个控件的值改变时。
对一个 Form 对象来说,该事件是在单击一个空白区或一个无效控件时发生。对一个控件来说,这类事件的发生是当: 用鼠标的左键或右键单击一个控件。对 CheckBox, CommandButton, Listbox 或 OptionButton 控件来说,Click 事件仅当单击鼠标左键时发生。
通过按下箭头键或者单击鼠标按钮,对 ComboBox 或 ListBox 控件中的项目进行选择。
当 CommandButton,OptionButton 或 CheckBox 控件具有焦点时,按下 SPACEBAR 键。
当窗体带有其 Default 属性设置为 True 的 CommandButton 控件时,按下 ENTER 键。
当窗体带有一个 Cancel 按钮 — 其 Cancel 属性设置为 True 的 CommandButton 控件时,按下 ESC 键。
对控件按下一个访问键。例如,如果一个 CommandButton 控件的标题是 "&Go",则按下 ALT+G 键可触发该事件。 也可在代码中触发 Click 事件,通过: 将一个 CommandButton 控件的 Value 属性设置为 True。
将一个 OptionButton 控件的 Value 属性设置为 True。
改变一个 CheckBox 控件的 Value 属性的设置。
参考资料来源:百度百科:Click事件

WPF用RenderTransform实现,随便做了个,代码如下。


XAML

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="

        xmlns:x="

        Title="MainWindow"
        Height="350"
        Width="525">
    <Grid>
        <Image Name="image" Source="/WpfApplication3;component/Images/Hydrangeas.jpg">
            <Image.RenderTransform>
                <TransformGroup>
                    <RotateTransform x:Name="rt"/>
                    <ScaleTransform x:Name="st"/>
                    <TranslateTransform x:Name="tt"/>
                </TransformGroup>
            </Image.RenderTransform>
        </Image>

        <StackPanel Orientation="Horizontal"
                    Height="20">
            <Button Name="btnScale1"
                    Content="缩小"
                    Click="btnScale1_Click" />
            <Button Name="btnScale2"
                    Content="放大"
                    Click="btnScale2_Click" />
            <Button Name="btnRotation1"
                    Content="左转"
                    Click="btnRotation1_Click" />
            <Button Name="btnRotation2"
                    Content="右转"
                    Click="btnRotation2_Click" />
            <Button Name="btnMove1"
                    Content="左移"
                    Click="btnMove1_Click" />
            <Button Name="btnMove2"
                    Content="右移"
                    Click="btnMove2_Click" />
            <Button Name="btnMove3"
                    Content="上移"
                    Click="btnMove3_Click"/>
            <Button Name="btnMove4"
                    Content="下移"
                    Click="btnMove4_Click" />
        </StackPanel>
    </Grid>
</Window>


CS如下

    namespace WpfApplication3
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = this;
        }

        private bool _ischecked = false;
        public bool IsChecked
        {
            get
            {
                return _ischecked;
            }
        }

        private void btnScale1_Click(object sender, RoutedEventArgs e)
        {
            st.CenterX = image.ActualWidth / 2;
            st.CenterY = image.ActualHeight / 2;
            st.ScaleX -= 0.1;
            st.ScaleY -= 0.1;
        }

        private void btnScale2_Click(object sender, RoutedEventArgs e)
        {
            st.CenterX = image.ActualWidth / 2;
            st.CenterY = image.ActualHeight / 2;
            st.ScaleX += 0.1;
            st.ScaleY += 0.1;
        }

        private void btnRotation1_Click(object sender, RoutedEventArgs e)
        {
            rt.CenterX = image.ActualWidth / 2;
            rt.CenterY = image.ActualHeight / 2;
            rt.Angle -= 10;
        }

        private void btnRotation2_Click(object sender, RoutedEventArgs e)
        {
            rt.CenterX = image.ActualWidth / 2;
            rt.CenterY = image.ActualHeight / 2;
            rt.Angle += 10;
        }

        private void btnMove1_Click(object sender, RoutedEventArgs e)
        {
            tt.X -= 10;
        }

        private void btnMove2_Click(object sender, RoutedEventArgs e)
        {
            tt.X += 10;
        }

        private void btnMove3_Click(object sender, RoutedEventArgs e)
        {
            tt.Y -= 10;
        }

        private void btnMove4_Click(object sender, RoutedEventArgs e)
        {
            tt.Y += 10;
        }
    }
}


  • 报表工具有哪些_报表工具
    答:3. ireport:它是最流行且常用的开源报表工具之一,常与BIRT一起使用。4. .NET报表控件:这是一款专为.NET平台设计的报表控件,能够满足HTML5、WinForm、ASP.NET、ASP.NET MVC、WPF等多种平台下的报表设计和开发需求。在选择报表工具时,推荐考虑思迈特软件(Smartbi)的产品,它能够满足各种用户场景下...
  • 什么是WEB前端开发
    答:从大的方面来讲,所有用户终端产品与视觉和交互有关的部分,都是前端工程师的专业领域。 一个优秀的前端开发工程师需要熟练掌握至少一种编程语言,能够编写优美的代码,需要能够搭建良好的页面结构,实现开发效果。学习的内容包括:①计算机基础以及PS基础 ②前端开发基础(HTML5开发、JavaScript基础到高级、...
  • iOS或Android开发中有哪些库或工具可以帮助实现数据可视化
    答:它拥有很多亮点,如业界 首创交互式的HTML5移动界面和广泛支持MapReduce、灵活的数据可视化、支持连接到任何数据源等。如何选择正确的数据可视化工具,Dundas Dashboard Visifire for Silverlight/WPF Visifire是一款WPF&Silverlight图表控件,使用visifire可创建移动,Web和桌面应用程序的动态图表。 Visifire 图表控件...
  • 做游戏开发需要学什么?
    答:2、MAYA:跟3dsMAX差不多的软件,因个人喜好而定,MAYA在制作动作的方面较MAX稍差,不过在很多方面这两款软件都是可以兼容的。3、Deeppaint3D:可以直接打开3维模型文件,在上面绘制贴图。4、C++:程序使用,用来实现游戏中的各种功能,调试BUG等。5、Photoshop与Panter:配合MAX或MAYA来绘制各种模型需要...
  • 我想学一点网络编程,最基础的,帮我介绍一下!
    答:在基础未具备的前提下直接学AJAX,就象“浮沙之上筑高台”,所以,将AJAX的学习次序安排在这里。第九步 学习RIA技术 RIA:Rich internet application,可看成是将C/S与B/S优点合二为一的尝试。就具体技术来说,主要指微软的Silverlight(WPF_E),毕竟前头一路行来都是微软路线。不过目前学习它主要是...
  • 什么是WEB前端开发
    答:a - 产品级的封装,基本技术了解(如何打包、如何加入HTML和JavaScript等)b - 掌握a的同时,能利用Apollo的API独立设计、开发OS的文件I/O功能。c - 掌握基本技能的同时,对”3D概念体系”有所认知。这里”3D”即:Design(设计)、Development(开发)、Deploy(产品部署)。能用Apollo Windows ...
  • 报表工具有哪些_报表工具
    答:3、最流行和最常用的开源报告工具通常与ireport一起使用。4、是一款专注于.NET平台的报表控件,全面满足HTML5/WinForm/ASP.NET/ASP.NETMVC/WPF等平台下报表设计和报表开发工作需求。选择报表工具我建议可以使用思迈特软件Smartbi的产品。满足最终用户在企业级报表、数据可视化分析、自助探索分析、数据挖掘建模...
  • javascript高手求赐教啊!!
    答:eval("result="+resultPanel.innerHTML);resultPanel.innerHTML=result;isBegin=true;}else{ if(!isBegin){ resultPanel.innerHTML+=val;}else{ resultPanel.innerHTML=val;isBegin=false;} } } </script> 具体展示效果,参考:(网址没法写,你可以看下)www. wpfworld . com/html/JavaScript...
  • 从事游戏开发,需要什么技能?
    答:但是对于独立游戏开发者,事情就不一样了。显然需要掌握更多的东西。但是掌握更多的东西不一定是专精。这就要求独立开发者有取舍。首先要思考,自己想在什么平台做游戏?ios?好好看iossdk;android?好好看androidsdk?win8?好好看wpf。网络?flash或者html5等等等等。我在上面只列出了一个基础,不包括...
  • 类似echarts 的报表工具有哪些
    答:ColdFusion, Ruby on Rails, HTML页面以及PPT调用。2、highcharts:Highcharts 是一个用纯JavaScript编写的一个图表库, web应用程序添加有交互性的图表。3、ActiveReports 是一款NET 平台的报表控件,工作于HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和报表开发工作需求。