问题列表 - 第9273页

通过反射删除路由事件处理程序?

背景:我正在使用 WPF 和 C# (3.5) 并且正在开发一个应用程序,该应用程序允许用户查看已经是已编译程序集一部分的窗体/窗口/用户控件。当他们查看它时,他们应该能够单击任何控件(按钮、文本框、甚至标签),控件旁边应该出现一个小的弹出编辑器,然后他们可以在其中为该控件键入工具提示、帮助 ID 等。

总而言之:我需要在 WPF 中模仿一个基本的设计视图。这意味着我至少需要执行以下操作:

  • 从给定的程序集中加载用户控件/窗口(没问题)
  • 实例化它的用户控件/窗口(没问题)
  • 清除其所有控件的所有订阅的 EventHandler
  • 将我自己的“ShowEditorPopup”EventHandler 分配给每个控件(应该不是问题)

首先,如果有人对更容易或更好的路线有建议,请告诉我。(显然,WPF 没有 DesignHost 类型的组件(就像我读过的 .NET 2 一样),所以就这样了。)

我被困在粗体项目上 - 清除所有订阅的 EventHandlers。在挖掘了一些并进入 Reflector 之后,我想出了这段很酷的危险代码(在这里,我只是想获取 XAML 中定义的名为 someButton 的单个按钮的所有事件处理程序):

<Button Name="someButton" Click="someButton_Click"/>
Run Code Online (Sandbox Code Playgroud)

这是代码(如果需要,您可以从 someButton_Click eventHandler 运行它):

public void SomeFunction()
{
// Get the control's Type
Type someButtonType = ((UIElement)someButton).GetType();

// Dig out the undocumented (yes, I know, it's risky) EventHandlerStore
// from the control's Type
PropertyInfo EventHandlersStoreType =  
        someButtonType.GetProperty("EventHandlersStore",  
        BindingFlags.Instance | BindingFlags.NonPublic); …
Run Code Online (Sandbox Code Playgroud)

c# reflection wpf routedevent event-handling

5
推荐指数
1
解决办法
4845
查看次数

如何从java中的图像中获取Raster?

我正在尝试将来自url的gif图像加载到java.util.image.Raster中,以便我可以操作它.加载和解压缩我可以找到的图像的唯一方法是Toolkit.getImage,它返回一个java.awt.Image.我需要将其转换为Raster,以便我可以使用它.建议?

java image awt raster

1
推荐指数
1
解决办法
6932
查看次数

LibXML2 Sax解析和&符号

我在使用sax解析器时遇到了(我认为是)一种奇怪的行为,我想知道它是否正常.

我通过SAX解析器发送这个XML:

<site url="http://example.com/?a=b&amp;b=c"; />
Run Code Online (Sandbox Code Playgroud)

startElement调用回调时,"&"将转换为"&" .它应该这样做吗?如果是这样,我想了解原因.

我贴了一个例子来证明这个问题:

#include <stdlib.h>
#include <libxml/parser.h>

static void start_element(void * ctx, const xmlChar *name, const xmlChar **atts)
{
  int i = 0;
  while(atts[i] != NULL) {
    printf("%s\n", atts[i]);
    i++;
  }
}

int main(int argc, char *argv[]) {
  xmlSAXHandlerPtr handler = calloc(1, sizeof(xmlSAXHandler));
  handler->startElement = start_element;

  char * xml = "<site url=\"http://example.com/?a=b&amp;b=c\" />";

  xmlSAXUserParseMemory( handler,
                          NULL,
                          xml,
                          strlen(xml)
  );
}
Run Code Online (Sandbox Code Playgroud)

PS:这条消息实际上是从LibXML2列表中提取的......我不是这封邮件的最初作者,但我注意到使用NokogiriAaron(Nokogiri的维护者)的问题实际上是自己发布了这条消息.

escaping libxml2

6
推荐指数
1
解决办法
4531
查看次数

如何使用jQuery获取整个页面的HTML?

我曾经使用过$(document).html(),但那引发了一个错误......是否有办法获得一切?

html jquery dom

55
推荐指数
2
解决办法
8万
查看次数

为c#锁定免费哈希表

有谁知道C#中无锁哈希表的实现?或者任何人都可以确认至少读取HashTable是线程安全的事实?

编辑:

我可以阅读文档,但目前还不清楚.

"当只有一个线程执行写(更新)操作时,多线程使用是线程安全的."

所以,问题是,如果我有多个线程,并且它们都可以写入哈希表,我会使用writerlock.但是,这些相同的线程也从哈希表中读取.读取时我需要一个读卡器吗?

c# multithreading

4
推荐指数
1
解决办法
5084
查看次数

我的HTML下拉列表在IE6中不起作用

因此,我使用带有国家/地区列表的HTML选择框和一个按钮,打开一个小窗口,其中包含HTML选择框中所选项目的更多详细信息.

这是我如何做到这一点(我在这里预先为任何noobishness道歉,我仍然是Javascript的新手):

//in header
<script type="text/javascript">
function popUp() 
{
   countryName = document.getElementById("countrylist").value;
   document.write(countryName);
   dest = "countries/" + countryName + ".html";
   window.open(dest, 0, "toolbar=0, scrollbars=0, statusbar=0, menubar=0,resizable=0,width=400,height=400,left=440,top=312");
}
</script>

<form id="countryform">
<select id="countrylist">
        <!--List of countries removed for brevity-->
</select>
<input type="button" name="countryBtn" value="Submit Query" onClick="popUp();">
</form>
Run Code Online (Sandbox Code Playgroud)

这在Firefox中运行良好,但在IE6中不行.任何帮助,将不胜感激!

更新:所以我尝试了下面的前两种方法,替代弹出功能在任一浏览器中都不起作用,并且替换document.getElementById行没有改变任何东西,在Firefox中仍然可以正常工作,不在IE中.

html javascript internet-explorer-6

2
推荐指数
1
解决办法
696
查看次数

为什么ConsoleTraceListener没有写入控制台?

我经常遇到.NET框架中的项目,这些项目很少或没有关于如何使用这些功能的代码示例.在其他场合,有很多例子,但似乎没有一个像规定那样工作.

例证:System.Diagnostics.ConsoleTraceListener类.

从我读过的所有内容和我见过的每个代码示例,当我做的事情如下:

ConsoleTraceListner listener = new ConsoleTraceListener();
listener.WriteLine("Yo");
Run Code Online (Sandbox Code Playgroud)

...我应该看到一个控制台窗口弹出"Yo".然而,不是那个预期的输出,而是将"Yo"写入Visual Studio输出,在那里可以看到正常的跟踪/调试消息.

我已经尝试了每次尝试我用Google搜索的示例包括相应侦听器的配置文件设置,将侦听器添加到Trace.Listeners集合,自定义ConsoleTraceListener类型等等.我甚至只编译到发行版并运行可执行文件(绝对没有任何作用).

我错过了什么?

.net

3
推荐指数
1
解决办法
5820
查看次数

在IE6中是否有任何针对子选择器的修复

在使用:first-child:last-child时,在css中它在IE7,FF中运行良好.

有没有可能解决这个问题.

使用Javascript很好.如果它没有javascript工作,那将是伟大的.

internet-explorer-6

4
推荐指数
1
解决办法
6456
查看次数

如果有焦点,如何让空格键上的按钮不亮?

我试图阻止的行为是在用户点击按钮后,按钮保持焦点,然后如果用户点击空格键,则按钮再次触发.所以我认为可以通过将焦点设置在别处,或者通过让按钮忽略空格键来解决.我已经尝试在按钮上添加以下keyDown事件侦听器,但它不起作用.

private function btn_keyDown(event:KeyboardEvent):void {
  // try to ignore spaces, i.e. don't click on SPACE when it has focus
  if (event.keyCode == Keyboard.SPACE) {
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试通过执行以下操作来更改焦点,在单击按钮时调用的函数结束时:

stage.focus = parent;
Run Code Online (Sandbox Code Playgroud)

但那也不起作用.

apache-flex

3
推荐指数
1
解决办法
4802
查看次数

WPF DataBinding - 完全糊涂了

天哪!我讨厌这个.为什么这么复杂?

我正在做的事情:

我有一个带有几个UserControl的表单,每个UserControl都有一个DataGrid.每个网格都通过.ItemSource属性与ObservableCollection绑定,每当程序捕获一个事件时,它就会对其中一个隐含的集合进行更改.但是网格图片不会更新.

data-binding wpf observablecollection

2
推荐指数
1
解决办法
169
查看次数