我无法从流程内部收听自动化事件.我在下面写了一个示例,其中有一个带有单个按钮的简单WPF应用程序.使用TreeScope:Descendants在窗口上为Invoke事件添加自动化处理程序.
public MainWindow()
{
InitializeComponent();
Loaded += OnLoaded;
}
private void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
{
IntPtr windowHandle = new WindowInteropHelper(this).Handle;
Task.Run(() =>
{
var element = AutomationElement.FromHandle(windowHandle);
Automation.AddAutomationEventHandler(InvokePattern.InvokedEvent, element, TreeScope.Descendants,
(s, a) =>
{
Debug.WriteLine($"Invoked:{a.EventId.Id}");
});
});
}
private void button_Click(object sender, RoutedEventArgs e)
{
Debug.WriteLine("Clicked!");
}
Run Code Online (Sandbox Code Playgroud)
当我点击按钮时,这就是我得到的:
Invoked:20009
Clicked!
Invoked:20009
Run Code Online (Sandbox Code Playgroud)
为什么Invoked事件被处理两次?
如果我删除Task.Run我只能得到它一次,但我已经阅读了几个你不应该从UI线程调用自动化代码的地方(例如https://msdn.microsoft.com/en-us/ library/ms788709(v = vs.110).aspx).在真实代码中这样做也是不切实际的.
我在此示例中使用了UIAComWrapper库,但是我对UIAutomationClient库的托管版和COM版都有相同的行为.
我正在尝试在PowerPoint(vsto加载项)中为我自己的对象重新调整内置字体选择器.我使用功能区xml成功地重新定位了常规命令(粗体,斜体等).
我有一个看起来像这样的测试:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns" label="Test">
<group id="MyGroup"
label="My Group">
<comboBox idMso="Font" label="ComboBox1" onChange="ChangeCallback"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)
如果我有一个常规而不是idMso,这个回调工作正常:
ChangeCallback(Office.IRibbonControl control, string text)
{
Debug.WriteLine("Changed");
}
Run Code Online (Sandbox Code Playgroud)
当我使用idMso ="Font"时,回调停止工作,但是comboBox工作,我可以使用它来选择正常的字体.
我试过以下回调没有运气.
ChangeCallback(Office.IRibbonControl control, string text, ref bool cancelDefault)
{
Debug.WriteLine("Changed");
}
Run Code Online (Sandbox Code Playgroud)
当我重新调用命令时,我把它放在xml的命令部分而不是功能区,但是不允许使用comboBox元素.
有关如何使其工作的任何想法?
我有一个带有反向传播训练器的神经网络的最小示例,可以在IRIS数据集上对其进行测试。我从7个隐藏节点开始,它运作良好。
我将隐藏层中的节点数减少到1(预计会失败),但是惊讶地发现精度提高了。
我在azure ml中设置了实验,只是为了验证这不是我的代码。那里同样,单个隐藏节点的准确性为98.3333%。
谁能向我解释这里发生了什么?
machine-learning backpropagation neural-network azure-machine-learning-studio