我正在尝试创建两个自定义WPF命令:一个名为WebBrowser,在调用时启动我的Firefox浏览器,另一个在调用时作为简单的退出命令。我一直在努力弄清楚,但我想我并不像我想的那么聪明。我只能弄清楚退出命令。如何调用我的浏览器让我发疯,因为我无法弄明白。任何帮助将不胜感激。这是我到目前为止所做的。
XAML代码:
<Window x:Class="WpfTutorialSamples.Commands.CustomCommandSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:self="clr-namespace:WpfTutorialSamples.Commands"
Title="CustomCommandSample" Height="150" Width="200">
<Window.CommandBindings>
<CommandBinding Command="self:CustomCommands.Exit" CanExecute="ExitCommand_CanExecute" Executed="ExitCommand_Executed" />
</Window.CommandBindings>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Menu>
<MenuItem Header="File">
<MenuItem Command="self:CustomCommands.Exit" />
</MenuItem>
</Menu>
<StackPanel Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Command="self:CustomCommands.Exit">Exit</Button>
</StackPanel>
</Grid>
</Window>
代码隐藏:
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
namespace WpfTutorialSamples.Commands
{
public partial class CustomCommandSample : Window
{
public CustomCommandSample()
{
InitializeComponent();
}
private void ExitCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
private void ExitCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
Application.Current.Shutdown();
}
}
public static class CustomCommands
{
public static readonly RoutedUICommand Exit = new RoutedUICommand
(
"Exit",
"Exit",
typeof(CustomCommands),
new InputGestureCollection()
{
new KeyGesture(Key.F4, ModifierKeys.Alt)
}
);
}
}
答案 0 :(得分:3)
如果你想专门打开Firefox并且你已经保证它存在,你可以做类似的事情:
System.Diagnostics.Process.Start(WhereFirefoxIs, SomeUrl);
网址可能类似于Firefox about:blank
,也可以是可选的。
事实上,如果你想在系统默认浏览器中打开一个URL,这可能会更安全一些,你可以Start(SomeUrl)
让Windows决定如何处理它。但是,请注意它是一个网络URL,以便您不必执行本地文件。