summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsr55 <[email protected]>2011-02-26 16:24:38 +0000
committersr55 <[email protected]>2011-02-26 16:24:38 +0000
commit357bd0bc173b6f3a78ea2297e0577d6c7f5219c3 (patch)
tree2abc76eca8a987ea5c51c21699a17d48db0ecf6c
parentcee0c38dcbef68f8d69b8b227510532fa66cb301 (diff)
WinGui:
- Started designing the Picture Settings Panel - Added a WindowManager. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3810 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--win/C#/HandBrakeWPF/App.xaml.cs12
-rw-r--r--win/C#/HandBrakeWPF/HandBrakeWPF.csproj5
-rw-r--r--win/C#/HandBrakeWPF/Services/WindowManager.cs40
-rw-r--r--win/C#/HandBrakeWPF/ViewModels/AboutViewModel.cs7
-rw-r--r--win/C#/HandBrakeWPF/ViewModels/AddPresetViewModel.cs6
-rw-r--r--win/C#/HandBrakeWPF/ViewModels/MainViewModel.cs22
-rw-r--r--win/C#/HandBrakeWPF/ViewModels/OptionsViewModel.cs6
-rw-r--r--win/C#/HandBrakeWPF/ViewModels/PreviewViewModel.cs6
-rw-r--r--win/C#/HandBrakeWPF/ViewModels/QueueViewModel.cs6
-rw-r--r--win/C#/HandBrakeWPF/ViewModels/ViewModelBase.cs25
-rw-r--r--win/C#/HandBrakeWPF/Views/AboutView.xaml10
-rw-r--r--win/C#/HandBrakeWPF/Views/Controls/PictureSettingsView.xaml99
-rw-r--r--win/C#/HandBrakeWPF/Views/MainView.xaml24
13 files changed, 238 insertions, 30 deletions
diff --git a/win/C#/HandBrakeWPF/App.xaml.cs b/win/C#/HandBrakeWPF/App.xaml.cs
index ae8d6a357..c0ed622a4 100644
--- a/win/C#/HandBrakeWPF/App.xaml.cs
+++ b/win/C#/HandBrakeWPF/App.xaml.cs
@@ -5,8 +5,10 @@
namespace HandBrakeWPF
{
+ using Caliburn.PresentationFramework;
using Caliburn.PresentationFramework.ApplicationModel;
+ using HandBrakeWPF.Services;
using HandBrakeWPF.ViewModels;
/// <summary>
@@ -37,12 +39,18 @@ namespace HandBrakeWPF
/// </returns>
protected override object CreateRootModel()
{
- var binder = (DefaultBinder)Container.GetInstance<IBinder>();
+ var binder = (DefaultBinder)Container.GetInstance<DefaultBinder>();
binder.EnableBindingConventions();
binder.EnableMessageConventions();
- return new MainViewModel();
+ return Container.GetInstance<MainViewModel>();
+ }
+
+
+ protected override void ConfigurePresentationFramework(PresentationFrameworkModule module)
+ {
+ module.UsingWindowManager<WindowManager>();
}
}
}
diff --git a/win/C#/HandBrakeWPF/HandBrakeWPF.csproj b/win/C#/HandBrakeWPF/HandBrakeWPF.csproj
index efcf37bb7..031f56ba7 100644
--- a/win/C#/HandBrakeWPF/HandBrakeWPF.csproj
+++ b/win/C#/HandBrakeWPF/HandBrakeWPF.csproj
@@ -61,12 +61,16 @@
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
+ <Reference Include="WPFToolkit.Extended">
+ <HintPath>..\libraries\WPFToolkit.Extended.dll</HintPath>
+ </Reference>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
+ <Compile Include="Services\WindowManager.cs" />
<Compile Include="ViewModels\AboutViewModel.cs" />
<Compile Include="ViewModels\AddPresetViewModel.cs" />
<Compile Include="ViewModels\PreviewViewModel.cs" />
@@ -205,7 +209,6 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Model\" />
- <Folder Include="Services\" />
</ItemGroup>
<ItemGroup>
<Resource Include="Views\Images\ActivityWindow.png" />
diff --git a/win/C#/HandBrakeWPF/Services/WindowManager.cs b/win/C#/HandBrakeWPF/Services/WindowManager.cs
new file mode 100644
index 000000000..903597bd4
--- /dev/null
+++ b/win/C#/HandBrakeWPF/Services/WindowManager.cs
@@ -0,0 +1,40 @@
+namespace HandBrakeWPF.Services
+{
+ using System;
+ using System.Windows;
+
+ using Caliburn.PresentationFramework.ApplicationModel;
+
+ public class WindowManager : DefaultWindowManager, IWindowManager
+ {
+
+ public WindowManager(IViewStrategy viewStrategy, IBinder binder)
+
+ : base(viewStrategy, binder)
+ {
+ }
+
+ //Display a view in a dialog (modal) window
+ public new bool? ShowDialog(object rootModel, object context, Action<ISubordinate, Action> handleShutdownModel)
+ {
+ var window = base.CreateWindow(rootModel, true, context, handleShutdownModel);
+ window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
+ window.WindowStyle = WindowStyle.ToolWindow;
+ window.ResizeMode = ResizeMode.NoResize;
+ window.Title = ((IPresenter)rootModel).DisplayName;
+ return window.ShowDialog();
+ }
+
+ //Display a view in a popup (non-modal) window
+ public new void Show(object rootModel, object context, Action<ISubordinate, Action> handleShutdownModel)
+ {
+ var window = base.CreateWindow(rootModel, false, context, handleShutdownModel);
+ window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
+ window.Title = ((IPresenter)rootModel).DisplayName;
+ window.ResizeMode = ResizeMode.NoResize;
+ window.Show();
+ }
+
+ }
+
+}
diff --git a/win/C#/HandBrakeWPF/ViewModels/AboutViewModel.cs b/win/C#/HandBrakeWPF/ViewModels/AboutViewModel.cs
index 603bfb416..b2e83cd84 100644
--- a/win/C#/HandBrakeWPF/ViewModels/AboutViewModel.cs
+++ b/win/C#/HandBrakeWPF/ViewModels/AboutViewModel.cs
@@ -5,10 +5,17 @@
namespace HandBrakeWPF.ViewModels
{
+ using Microsoft.Practices.ServiceLocation;
+
/// <summary>
/// The About View Model
/// </summary>
public class AboutViewModel : ViewModelBase
{
+ public AboutViewModel(IServiceLocator locator)
+ : base(locator)
+ {
+ }
+
}
}
diff --git a/win/C#/HandBrakeWPF/ViewModels/AddPresetViewModel.cs b/win/C#/HandBrakeWPF/ViewModels/AddPresetViewModel.cs
index bcd55fcfc..c744d0026 100644
--- a/win/C#/HandBrakeWPF/ViewModels/AddPresetViewModel.cs
+++ b/win/C#/HandBrakeWPF/ViewModels/AddPresetViewModel.cs
@@ -5,10 +5,16 @@
namespace HandBrakeWPF.ViewModels
{
+ using Microsoft.Practices.ServiceLocation;
+
/// <summary>
/// The Add Preset View Model
/// </summary>
public class AddPresetViewModel : ViewModelBase
{
+ public AddPresetViewModel(IServiceLocator locator)
+ : base(locator)
+ {
+ }
}
}
diff --git a/win/C#/HandBrakeWPF/ViewModels/MainViewModel.cs b/win/C#/HandBrakeWPF/ViewModels/MainViewModel.cs
index 0aaa4eb84..b39906df3 100644
--- a/win/C#/HandBrakeWPF/ViewModels/MainViewModel.cs
+++ b/win/C#/HandBrakeWPF/ViewModels/MainViewModel.cs
@@ -16,6 +16,8 @@ namespace HandBrakeWPF.ViewModels
using HandBrake.ApplicationServices.Services;
using HandBrake.ApplicationServices.Services.Interfaces;
+ using Microsoft.Practices.ServiceLocation;
+
/// <summary>
/// HandBrakes Main Window
/// </summary>
@@ -55,10 +57,10 @@ namespace HandBrakeWPF.ViewModels
#endregion
- /// <summary>
- /// Initializes a new instance of the <see cref="MainViewModel"/> class.
- /// </summary>
- public MainViewModel()
+ #region Properties
+
+ public MainViewModel(IServiceLocator locator)
+ : base(locator)
{
// Setup Services (TODO - Bring Castle back into the project to wire these up for us)
this.scanService = File.Exists("hb.dll") ? (IScan)new LibScan() : new ScanService();
@@ -79,7 +81,6 @@ namespace HandBrakeWPF.ViewModels
this.queueProcessor.EncodeService.EncodeStatusChanged += this.EncodeStatusChanged;
}
- #region Properties
/// <summary>
/// Gets or sets TestProperty.
/// </summary>
@@ -185,6 +186,14 @@ namespace HandBrakeWPF.ViewModels
base.Shutdown();
}
+
+ #region Menu and Taskbar
+
+ public void AboutApplication()
+ {
+ this.ShowDialog<AboutViewModel>();
+ }
+
/// <summary>
/// Shutdown the Application
/// </summary>
@@ -193,6 +202,9 @@ namespace HandBrakeWPF.ViewModels
Application.Current.Shutdown();
}
+ #endregion
+
+
#region Event Handlers
/// <summary>
/// Handle the Scan Status Changed Event.
diff --git a/win/C#/HandBrakeWPF/ViewModels/OptionsViewModel.cs b/win/C#/HandBrakeWPF/ViewModels/OptionsViewModel.cs
index 62394c167..ab7749980 100644
--- a/win/C#/HandBrakeWPF/ViewModels/OptionsViewModel.cs
+++ b/win/C#/HandBrakeWPF/ViewModels/OptionsViewModel.cs
@@ -5,10 +5,16 @@
namespace HandBrakeWPF.ViewModels
{
+ using Microsoft.Practices.ServiceLocation;
+
/// <summary>
/// The Options View Model
/// </summary>
public class OptionsViewModel : ViewModelBase
{
+ public OptionsViewModel(IServiceLocator locator)
+ : base(locator)
+ {
+ }
}
}
diff --git a/win/C#/HandBrakeWPF/ViewModels/PreviewViewModel.cs b/win/C#/HandBrakeWPF/ViewModels/PreviewViewModel.cs
index b70d2179f..2593fa51e 100644
--- a/win/C#/HandBrakeWPF/ViewModels/PreviewViewModel.cs
+++ b/win/C#/HandBrakeWPF/ViewModels/PreviewViewModel.cs
@@ -5,10 +5,16 @@
namespace HandBrakeWPF.ViewModels
{
+ using Microsoft.Practices.ServiceLocation;
+
/// <summary>
/// The About View Model
/// </summary>
public class PreviewViewModel : ViewModelBase
{
+ public PreviewViewModel(IServiceLocator locator)
+ : base(locator)
+ {
+ }
}
}
diff --git a/win/C#/HandBrakeWPF/ViewModels/QueueViewModel.cs b/win/C#/HandBrakeWPF/ViewModels/QueueViewModel.cs
index bbe013d3a..5ebfd11f7 100644
--- a/win/C#/HandBrakeWPF/ViewModels/QueueViewModel.cs
+++ b/win/C#/HandBrakeWPF/ViewModels/QueueViewModel.cs
@@ -5,10 +5,16 @@
namespace HandBrakeWPF.ViewModels
{
+ using Microsoft.Practices.ServiceLocation;
+
/// <summary>
/// The Preview View Model
/// </summary>
public class QueueViewModel : ViewModelBase
{
+ public QueueViewModel(IServiceLocator locator)
+ : base(locator)
+ {
+ }
}
}
diff --git a/win/C#/HandBrakeWPF/ViewModels/ViewModelBase.cs b/win/C#/HandBrakeWPF/ViewModels/ViewModelBase.cs
index 829524606..c07593b7b 100644
--- a/win/C#/HandBrakeWPF/ViewModels/ViewModelBase.cs
+++ b/win/C#/HandBrakeWPF/ViewModels/ViewModelBase.cs
@@ -1,12 +1,35 @@
namespace HandBrakeWPF.ViewModels
{
- using Caliburn.Core;
using Caliburn.PresentationFramework.ApplicationModel;
+ using Microsoft.Practices.ServiceLocation;
+
/// <summary>
/// A Base Class for the View Models which contains reusable code.
/// </summary>
public class ViewModelBase : MultiPresenterManager
{
+ protected IServiceLocator Locator { get; private set; }
+
+ public ViewModelBase(IServiceLocator locator)
+ {
+ this.Locator = locator;
+ }
+
+ public void Show<T>() where T : IPresenter
+ {
+ this.ShutdownCurrent();
+ this.Open(Locator.GetInstance<T>());
+ }
+
+ public void ShowDialog<T>() where T : IPresenter
+ {
+ Locator.GetInstance<IWindowManager>().ShowDialog(Locator.GetInstance<T>());
+ }
+
+ public void Popup<T>() where T : IPresenter
+ {
+ Locator.GetInstance<IWindowManager>().Show(Locator.GetInstance<T>());
+ }
}
}
diff --git a/win/C#/HandBrakeWPF/Views/AboutView.xaml b/win/C#/HandBrakeWPF/Views/AboutView.xaml
index 155a5f07c..030623f9c 100644
--- a/win/C#/HandBrakeWPF/Views/AboutView.xaml
+++ b/win/C#/HandBrakeWPF/Views/AboutView.xaml
@@ -1,7 +1,6 @@
<Window x:Class="HandBrakeWPF.Views.AboutView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="AboutView" Height="268" Width="511">
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:PresentationFramework="clr-namespace:Caliburn.PresentationFramework;assembly=Caliburn.PresentationFramework" Title="AboutView" Height="268" Width="511">
<StackPanel Orientation="Horizontal">
<Image Source="Images/logo64.png" Width="64" Height="64" SnapsToDevicePixels="True" Margin="10,10,10,10" HorizontalAlignment="Left" VerticalAlignment="Top" />
@@ -11,15 +10,16 @@
<Label Content="Copyright 2003-2011 HandBrake Team" />
<Label Content="License:" />
- <TextBox IsEnabled="False" Width="380" Height="100" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" Margin="10,0,10,10">
+ <TextBox Width="380" Height="100" IsReadOnly="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" Margin="10,0,10,10">
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
</TextBox>
-
- <Button Content="OK" HorizontalAlignment="Right" Padding="10,2" Margin="0,0,10,10"></Button>
+
+ <Button Content="OK" PresentationFramework:Message.Attach="[Event Click] = [Action Close]"
+ HorizontalAlignment="Right" Padding="10,2" Margin="0,0,10,10" />
</StackPanel>
diff --git a/win/C#/HandBrakeWPF/Views/Controls/PictureSettingsView.xaml b/win/C#/HandBrakeWPF/Views/Controls/PictureSettingsView.xaml
index a60e3b565..80b82c52f 100644
--- a/win/C#/HandBrakeWPF/Views/Controls/PictureSettingsView.xaml
+++ b/win/C#/HandBrakeWPF/Views/Controls/PictureSettingsView.xaml
@@ -3,9 +3,100 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- mc:Ignorable="d"
- d:DesignHeight="300" d:DesignWidth="300">
- <Grid Background="Beige">
+ xmlns:Controls="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit.Extended"
+ >
+
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
+
+ <!-- Size Panel-->
+ <StackPanel Name="SizePanel" Orientation="Vertical" >
+ <Label Content="Size" FontWeight="Bold" />
+
+ <!-- Row 1-->
+ <StackPanel Orientation="Horizontal" Margin="5,0,5,0">
+ <Label Content="Source" Grid.Row="0" Grid.Column="0" />
+ <Label Content="---" Name="sourceResolution" Grid.Row="0" Grid.Column="1" />
+ </StackPanel>
+
+ <!-- Row 2-->
+ <StackPanel Orientation="Horizontal" Margin="5,0,5,0">
+ <Label Content="Width:" Grid.Row="1" Grid.Column="0" />
+ <Controls:NumericUpDown Name="width" Minimum="0" Grid.Row="1" Grid.Column="1" Width="45" />
+ <Label Content="Height:" Grid.Row="1" Grid.Column="2" />
+ <Controls:NumericUpDown Name="height" Minimum="0" Grid.Row="1" Grid.Column="3" Width="45" />
+ <CheckBox Content="Keep Aspect Ratio" VerticalAlignment="Center" Margin="5,0,0,0" />
+ </StackPanel>
+
+ <!-- Row 3-->
+ <Grid Margin="5,15,5,0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ </Grid.RowDefinitions>
+
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="Auto" />
+ </Grid.ColumnDefinitions>
+
+ <Label Content="Anamorphic:" Grid.Row="0" Grid.Column="0" />
+ <Label Content="Modulus:" Grid.Row="1" Grid.Column="0" />
+ <Label Content="Display Width:" Grid.Row="2" Grid.Column="0" />
+ <Label Content="PAR Width:" Grid.Row="3" Grid.Column="0" />
+ <Label Content="PAR Height:" Grid.Row="4" Grid.Column="0" />
+ <Label Content="Display Size:" Grid.Row="5" Grid.Column="0" />
+
+ <ComboBox Width="110" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Left" Margin="0,0,0,5" />
+ <ComboBox Width="110" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left" Margin="0,0,0,5" />
+ <Controls:NumericUpDown Width="45" Grid.Row="2" Grid.Column="1" HorizontalAlignment="Left" Margin="0,0,0,5" />
+ <Controls:NumericUpDown Width="45" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Left" Margin="0,0,0,5" />
+ <Controls:NumericUpDown Width="45" Grid.Row="4" Grid.Column="1" HorizontalAlignment="Left" Margin="0,0,0,5" />
+ <Label Content="---" Grid.Row="5" Grid.Column="1" HorizontalAlignment="Left" Margin="0,0,0,5" />
+ </Grid>
+ </StackPanel>
+
+
+ <StackPanel Name="CropPanel" Margin="50,0,0,0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
+ <Label Content="Cropping" FontWeight="Bold" />
+ <RadioButton Content="Automatic" Margin="10,0,0,0"/>
+ <RadioButton Content="Custom" Margin="10,0,0,0" />
- </Grid>
+ <Grid Margin="0,10,0,0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ </Grid.RowDefinitions>
+
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="Auto" />
+ </Grid.ColumnDefinitions>
+
+ <Label Content="Top" Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" />
+ <Label Content="Bottom" Grid.Row="4" Grid.Column="2" VerticalAlignment="Center" />
+ <Label Content="Left" Grid.Row="2" Grid.Column="0" HorizontalAlignment="Center" />
+ <Label Content="Right" Grid.Row="2" Grid.Column="4" HorizontalAlignment="Center" />
+
+ <Controls:NumericUpDown Width="45" Grid.Row="1" Grid.Column="2" HorizontalAlignment="Left" Margin="0,0,0,5" />
+ <Controls:NumericUpDown Width="45" Grid.Row="3" Grid.Column="2" HorizontalAlignment="Left" Margin="0,0,0,5" />
+ <Controls:NumericUpDown Width="45" Grid.Row="2" Grid.Column="1" HorizontalAlignment="Left" Margin="0,0,0,5" />
+ <Controls:NumericUpDown Width="45" Grid.Row="2" Grid.Column="3" HorizontalAlignment="Left" Margin="0,0,0,5" />
+
+ </Grid>
+
+
+ </StackPanel>
+
+
+ </StackPanel>
</UserControl>
diff --git a/win/C#/HandBrakeWPF/Views/MainView.xaml b/win/C#/HandBrakeWPF/Views/MainView.xaml
index 56edca62e..828a28cb9 100644
--- a/win/C#/HandBrakeWPF/Views/MainView.xaml
+++ b/win/C#/HandBrakeWPF/Views/MainView.xaml
@@ -18,26 +18,26 @@
</MenuItem>
<MenuItem Header="Tools">
- <MenuItem Header="Show Queue" />
- <MenuItem Header="Activity Window" />
+ <MenuItem Header="Show Queue" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
+ <MenuItem Header="Activity Window" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
</MenuItem>
<MenuItem Header="Presets">
- <MenuItem Header="Reset Built-in Presets" />
- <MenuItem Header="Delete Built-in Presets" />
+ <MenuItem Header="Reset Built-in Presets" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
+ <MenuItem Header="Delete Built-in Presets" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
<Separator />
- <MenuItem Header="Save As New Preset" />
- <MenuItem Header="Import" />
- <MenuItem Header="Export" />
- <MenuItem Header="Set as Default" />
+ <MenuItem Header="Save As New Preset" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
+ <MenuItem Header="Import" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
+ <MenuItem Header="Export" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
+ <MenuItem Header="Set as Default" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
</MenuItem>
<MenuItem Header="Help">
- <MenuItem Header="HandBrake User Guide" />
+ <MenuItem Header="HandBrake User Guide" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
<Separator />
- <MenuItem Header="Check for Updates" />
+ <MenuItem Header="Check for Updates" PresentationFramework:Message.Attach="[Event Click] = [Action ExitApplication]" />
<Separator />
- <MenuItem Header="About..." />
+ <MenuItem Header="About..." PresentationFramework:Message.Attach="[Event Click] = [Action AboutApplication]" />
</MenuItem>
</Menu>
@@ -144,7 +144,7 @@
<!-- Tab Control -->
<TabControl HorizontalAlignment="Left" VerticalAlignment="Stretch" Width="725" Height="330" Margin="10,10,10,10" Name="tabControl" >
<TabItem Header="Picture" Name="pictureTab">
- <Views:PictureSettingsView></Views:PictureSettingsView>
+ <Views:PictureSettingsView x:Name="pictureSettingsView"></Views:PictureSettingsView>
</TabItem>
<TabItem Header="Video Filters" Name="filtersTab">
<Views:FiltersView></Views:FiltersView>