{"id":507,"date":"2007-11-30T13:11:40","date_gmt":"2007-11-30T05:11:40","guid":{"rendered":"http:\/\/fdream.net\/blog\/article\/507.aspx"},"modified":"2007-11-30T13:11:29","modified_gmt":"2007-11-30T05:11:29","slug":"%e8%ae%a9Silverlight+User+Control%e6%8e%a5%e6%94%b6%e9%94%ae%e7%9b%98%e6%b6%88%e6%81%af","status":"publish","type":"post","link":"https:\/\/fdream.net\/blog\/article\/507","title":{"rendered":"\u8ba9Silverlight User Control\u63a5\u6536\u952e\u76d8\u6d88\u606f"},"content":{"rendered":"<p>\u6628\u5929\u8bf4Silverlight User Control\u4e0d\u80fd\u63a5\u6536\u952e\u76d8\u6d88\u606f\uff0c\u4f46\u662fPage.xaml\u662f\u53ef\u4ee5\u63a5\u6536\u952e\u76d8\u6d88\u606f\u3002\u65e2\u7136Page\u80fd\u591f\u63a5\u6536\u952e\u76d8\u6d88\u606f\uff0c\u90a3\u4e48\u6211\u4eec\u5c31\u53ef\u4ee5\u7528Page\u6765\u63a5\u6536\u6d88\u606f\uff0c\u7136\u540e\u60f3\u529e\u6cd5\u8f6c\u53d1\u7ed9User Control\u9875\u9762\u5c31\u884c\u4e86\u3002\u4e00\u4e2a\u7b80\u5355\u7684\u5b9e\u73b0\u65b9\u6cd5\u5c31\u662f\u5229\u7528C#\u4e2d\u7684delegate\u6765\u5b9e\u73b0\u3002<\/p>\n<p>\u7b80\u5355\u7684\u4f8b\u5b50\u5982\u4e0b\uff1a<br \/>1\u3001\u5148\u5728Page.xaml.cs\u4e2d\u58f0\u660e\u4e00\u4e2adelegate\u7c7b\u578b\u4ee5\u53ca\u4e00\u4e2a\u8be5\u7c7b\u578b\u7684\u53d8\u91cf\uff0c\u5176\u53c2\u6570\u548cKeyboardEventHandler\u7684\u53c2\u6570\u4e00\u6837\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u76f4\u63a5\u628a\u4e8b\u4ef6\u4f20\u8fc7\u53bb\u4e86\uff1b<\/p>\n<blockquote>\n<p>public delegate void SubKeyBoardEventHandler(object sender, KeyboardEventArgs e);<br \/>public SubKeyBoardEventHandler subKeyHandler = null;<\/p>\n<\/blockquote>\n<p>2\u3001\u5728Page.xaml.cs\u4e2d\u76d1\u542c\u952e\u76d8\u6d88\u606f\uff1a<\/p>\n<blockquote>\n<p>this.KeyDown += new KeyboardEventHandler(Page_KeyDown);<\/p>\n<\/blockquote>\n<p>3\u3001\u8fd9\u4e2a\u952e\u76d8\u4e8b\u4ef6Handler\u8981\u5199\u6210\u8fd9\u6837\uff1a<\/p>\n<blockquote>\n<p>void Page_KeyDown(object sender, KeyboardEventArgs e)<br \/>{<br \/>    if (subKeyHandler != null)<br \/>    {<br \/>        subKeyHandler(sender, e);<br \/>    }<br \/>}<\/p>\n<\/blockquote>\n<p>4\u3001\u5728User Control\u9875\u9762\u4e2d\uff0c\u9700\u8981\u5728\u6784\u9020\u51fd\u6570\u91cc\u628aPage\u5b9e\u4f8b\u4f20\u8fc7\u53bb\uff0c\u8fd9\u6837\u5c31\u80fd\u7ed9subKeyHandler\u8d4b\u503c\u4e86\uff1a<\/p>\n<blockquote>\n<p>public UC(Page pc)<br \/>{<br \/>    System.IO.Stream s = this.GetType().Assembly.GetManifestResourceStream(&#8220;TestKeyEvent.UC.xaml&#8221;);<br \/>    this.InitializeFromXaml(new System.IO.StreamReader(s).ReadToEnd());<\/p>\n<p>    pc.subKeyHandler = testKeyHandler;<br \/>}<\/p>\n<\/blockquote>\n<p>5\u3001testKeyHandler\u5982\u4e0b\uff1a<\/p>\n<blockquote>\n<p>void testKeyHandler(object sender, KeyboardEventArgs e)<br \/>{<br \/>    \/\/here is your code<br \/>}<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>\u6628\u5929\u8bf4Silverlight User Control\u4e0d\u80fd\u63a5\u6536\u952e\u76d8\u6d88\u606f\uff0c\u4f46\u662fPage.xaml\u662f\u53ef\u4ee5\u63a5\u6536\u952e\u76d8\u6d88\u606f\u3002\u65e2\u7136Page\u80fd\u591f\u63a5\u6536\u952e\u76d8\u6d88\u606f\uff0c\u90a3\u4e48\u6211\u4eec\u5c31\u53ef\u4ee5\u7528Page\u6765\u63a5\u6536\u6d88\u606f\uff0c\u7136\u540e\u60f3\u529e\u6cd5\u8f6c\u53d1\u7ed9User Control\u9875\u9762\u5c31\u884c\u4e86\u3002\u4e00\u4e2a\u7b80\u5355\u7684\u5b9e\u73b0\u65b9\u6cd5\u5c31\u662f\u5229\u7528C#\u4e2d\u7684delegate\u6765\u5b9e\u73b0\u3002 \u7b80\u5355\u7684\u4f8b\u5b50\u5982\u4e0b\uff1a1\u3001\u5148\u5728Page.xaml.cs\u4e2d\u58f0\u660e\u4e00\u4e2adelegate\u7c7b\u578b\u4ee5\u53ca\u4e00\u4e2a\u8be5\u7c7b\u578b\u7684\u53d8\u91cf\uff0c\u5176\u53c2\u6570\u548cKeyboardEventHandler\u7684\u53c2\u6570\u4e00\u6837\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u76f4\u63a5\u628a\u4e8b\u4ef6\u4f20\u8fc7\u53bb\u4e86\uff1b public delegate void SubKeyBoardEventHandler(object sender, KeyboardEventArgs e);public SubKeyBoardEventHandler subKeyHandler = null; 2\u3001\u5728Page.xaml.cs\u4e2d\u76d1\u542c\u952e\u76d8\u6d88\u606f\uff1a this.KeyDown += new KeyboardEventHandler(Page_KeyDown); 3\u3001\u8fd9\u4e2a\u952e\u76d8\u4e8b\u4ef6Handler\u8981\u5199\u6210\u8fd9\u6837\uff1a void Page_KeyDown(object sender, KeyboardEventArgs e){ if (subKeyHandler != null) { subKeyHandler(sender, e); }} 4\u3001\u5728User Control\u9875\u9762\u4e2d\uff0c\u9700\u8981\u5728\u6784\u9020\u51fd\u6570\u91cc\u628aPage\u5b9e\u4f8b\u4f20\u8fc7\u53bb\uff0c\u8fd9\u6837\u5c31\u80fd\u7ed9subKeyHandler\u8d4b\u503c\u4e86\uff1a public UC(Page pc){ System.IO.Stream s = this.GetType().Assembly.GetManifestResourceStream(&#8220;TestKeyEvent.UC.xaml&#8221;); this.InitializeFromXaml(new System.IO.StreamReader(s).ReadToEnd()); pc.subKeyHandler = testKeyHandler;} 5\u3001testKeyHandler\u5982\u4e0b\uff1a void testKeyHandler(object sender, KeyboardEventArgs e){ &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[294],"class_list":["post-507","post","type-post","status-publish","format-standard","hentry","category-coding","tag-Silverlight"],"views":18898,"_links":{"self":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/posts\/507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/comments?post=507"}],"version-history":[{"count":0,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/posts\/507\/revisions"}],"wp:attachment":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/media?parent=507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/categories?post=507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/tags?post=507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}