C# 如何用自定义窗口替换WPF标准窗口?
现在我正在尝试使用c#创建一个语音识别助手(基本上是一个JARVIS程序)。我开始在VisualStudio中编写代码,代码运行后,我转到expression blend来处理UI 我已成功导入图像并在循环中设置动画。在那一点上,当我运行程序时,一切都正常(包括动画和语音识别)。然后,我的下一步是通过将标准窗口设置为透明,尝试用刚导入的图像“替换”标准窗口。使用这些窗格,我将所有画笔设置为“无画笔”,并将AllowTransparency设置为“true”。当我运行程序时,动画仍然有效,但程序停止运行所有语音识别代码 通过消除过程,我将问题隔离到背景笔刷和AllowTransparency函数。如果我将AllowTransparency设置为true,或者以任何方式弄乱背景笔刷,那么就不会有更多的语音识别 我不熟悉编码,所以我能想到的唯一原因(我甚至不知道这是否是原因)是语音识别目录和函数映射到窗口 发生这种情况有什么原因/有解决办法吗C# 如何用自定义窗口替换WPF标准窗口?,c#,wpf,xaml,blend,C#,Wpf,Xaml,Blend,现在我正在尝试使用c#创建一个语音识别助手(基本上是一个JARVIS程序)。我开始在VisualStudio中编写代码,代码运行后,我转到expression blend来处理UI 我已成功导入图像并在循环中设置动画。在那一点上,当我运行程序时,一切都正常(包括动画和语音识别)。然后,我的下一步是通过将标准窗口设置为透明,尝试用刚导入的图像“替换”标准窗口。使用这些窗格,我将所有画笔设置为“无画笔”,并将AllowTransparency设置为“true”。当我运行程序时,动画仍然有效,但程序停
编辑:添加代码
public MainWindow()
{
InitializeComponent();
Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, EventArgs e)
{
_recognizer.SetInputToDefaultAudioDevice();
_recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"C:\users\username\Documents\commands.txt")))));
_recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized);
_recognizer.RecognizeAsync(RecognizeMode.Multiple);
}
void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
int ranNum = rnd.Next(1, 10);
string speech = e.Result.Text;
switch (speech)
{
//INTERACTIONS
case "hello":
public主窗口()
{
初始化组件();
加载+=主窗口\u加载;
}
已加载私有void主窗口(对象发送方、事件参数)
{
_recognizer.setInputOdeFaultAudioDevice();
_recognizer.LoadGrammar(新语法(新语法生成器(新选项)(File.ReadAllLines(@“C:\users\username\Documents\commands.txt“))));
_recognizer.SpeechRecognized+=新事件处理程序(_recognizer_SpeechRecognized);
_识别器.RecognizeAsync(RecognizeMode.Multiple);
}
void _recognizer _SpeechRecognized(对象发送方,SpeechRecognizedEventArgs e)
{
int ranNum=rnd.Next(1,10);
字符串语音=e.Result.Text;
开关(语音)
{
//相互作用
案例“你好”:
…依此类推您需要完成四个步骤才能使窗口“消失”:
Background="#01000000"
您可能还希望保留对
任务的引用,该任务(我假设)是由RecognizeAsync
方法调用返回的;不知道何时可能会无意中对其进行垃圾收集。我不明白您说的是“替换”“通过将“标准窗口”设置为“透明”来显示我刚导入的图像的标准窗口。如何用图像替换窗口?你的意思是将背景设置为图像?程序运行时,我希望UI仅显示动画,而不显示窗口。具体而言,是图像(圆形)将用作主窗口。这就是为什么我将窗口设置为透明,以便只有图像可见。我明白了。像飞溅一样?我认为只有在外观上,如果有意义的话。我不尝试创建加载屏幕。可能会有帮助。您也可以沿“WPF动画飞溅屏幕”的行搜索“显示了大量的指南。我已使窗口消失,但问题是除了动画以外的所有其他代码都停止工作。我已使用这些代码编辑了我的问题。”。