diff options
21 files changed, 152 insertions, 62 deletions
diff --git a/win/CS/HandBrake.ApplicationServices/Isolation/IsolatedEncodeService.cs b/win/CS/HandBrake.ApplicationServices/Isolation/IsolatedEncodeService.cs index f5aba636c..aeb99783c 100644 --- a/win/CS/HandBrake.ApplicationServices/Isolation/IsolatedEncodeService.cs +++ b/win/CS/HandBrake.ApplicationServices/Isolation/IsolatedEncodeService.cs @@ -104,7 +104,7 @@ namespace HandBrake.ApplicationServices.Isolation }
/// <summary>
- /// Gets or sets IsPaused
+ /// Gets a value indicating whether is pasued.
/// </summary>
public bool IsPasued { get; private set; }
diff --git a/win/CS/HandBrake.ApplicationServices/Services/Encode.cs b/win/CS/HandBrake.ApplicationServices/Services/Encode.cs index 18d69c06f..318902c91 100644 --- a/win/CS/HandBrake.ApplicationServices/Services/Encode.cs +++ b/win/CS/HandBrake.ApplicationServices/Services/Encode.cs @@ -69,7 +69,7 @@ namespace HandBrake.ApplicationServices.Services }
/// <summary>
- /// Gets or sets IsPaused
+ /// Gets a value indicating whether is pasued.
/// </summary>
public bool IsPasued { get; private set; }
diff --git a/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IEncode.cs b/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IEncode.cs index 7378eee1d..dec7d25b3 100644 --- a/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IEncode.cs +++ b/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IEncode.cs @@ -77,7 +77,7 @@ namespace HandBrake.ApplicationServices.Services.Interfaces bool CanPause { get; }
/// <summary>
- /// Is Paused
+ /// Gets a value indicating whether is pasued.
/// </summary>
bool IsPasued { get; }
diff --git a/win/CS/HandBrake.ApplicationServices/Services/LibEncode.cs b/win/CS/HandBrake.ApplicationServices/Services/LibEncode.cs index 608fd1476..e62c1cc2c 100644 --- a/win/CS/HandBrake.ApplicationServices/Services/LibEncode.cs +++ b/win/CS/HandBrake.ApplicationServices/Services/LibEncode.cs @@ -79,7 +79,7 @@ namespace HandBrake.ApplicationServices.Services }
/// <summary>
- /// Gets or sets IsPaused
+ /// Gets a value indicating whether is pasued.
/// </summary>
public bool IsPasued { get; private set; }
diff --git a/win/CS/HandBrake.ApplicationServices/Utilities/QueryParserUtility.cs b/win/CS/HandBrake.ApplicationServices/Utilities/QueryParserUtility.cs index a3cfae6fe..2b39c74a5 100644 --- a/win/CS/HandBrake.ApplicationServices/Utilities/QueryParserUtility.cs +++ b/win/CS/HandBrake.ApplicationServices/Utilities/QueryParserUtility.cs @@ -54,7 +54,6 @@ namespace HandBrake.ApplicationServices.Utilities // Output Settings
Match format = Regex.Match(input, @"-f ([a-zA-Z0-9]+)");
Match grayscale = Regex.Match(input, @" -g");
- Match largerMp4 = Regex.Match(input, @" -4");
Match ipodAtom = Regex.Match(input, @" -I");
// Picture Settings Tab
@@ -480,11 +479,6 @@ namespace HandBrake.ApplicationServices.Utilities parsed.X264Tune = Converters.Getx264TuneFromCli(tuneOptions);
}
-
-
-
-
-
if (x265Preset.Success)
parsed.X265Preset =
Converters.Getx265PresetFromCli(x265Preset.ToString().Replace("--x265-preset", string.Empty).Replace("=", string.Empty).Trim());
diff --git a/win/CS/HandBrakeWPF/Constants.cs b/win/CS/HandBrakeWPF/Constants.cs index 174db62ad..27e70828d 100644 --- a/win/CS/HandBrakeWPF/Constants.cs +++ b/win/CS/HandBrakeWPF/Constants.cs @@ -29,13 +29,11 @@ namespace HandBrakeWPF /// </summary>
public const string AppcastUnstable32 = "http://handbrake.fr/appcast_unstable.i386.xml";
-
/// <summary>
/// The appcast 32.
/// </summary>
public const string AppcastUnstable64 = "http://handbrake.fr/appcast_unstable.x86_64.xml";
-
/// <summary>
/// The any.
/// </summary>
diff --git a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj index 2250b4fc5..64752b39d 100644 --- a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj +++ b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj @@ -157,6 +157,7 @@ <Compile Include="Services\Interfaces\IUserSettingService.cs" />
<Compile Include="Services\UserSettingService.cs" />
<Compile Include="Utilities\DelayedActionProcessor.cs" />
+ <Compile Include="Utilities\DPIAwareness.cs" />
<Compile Include="Utilities\HandBrakeApp.cs" />
<Compile Include="ViewModels\CountdownAlertViewModel.cs" />
<Compile Include="ViewModels\Interfaces\ICountdownAlertViewModel.cs" />
diff --git a/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs b/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs index e9e4d0278..0c521661b 100644 --- a/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs +++ b/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs @@ -18,7 +18,6 @@ namespace HandBrakeWPF.Helpers using HandBrake.ApplicationServices.Extensions;
using HandBrake.ApplicationServices.Model;
using HandBrake.ApplicationServices.Model.Encoding;
- using HandBrake.ApplicationServices.Services.Interfaces;
using HandBrake.Interop.Model.Encoding;
using HandBrakeWPF.Services.Interfaces;
@@ -97,10 +96,12 @@ namespace HandBrakeWPF.Helpers if (task.VideoEncodeRateType == VideoEncodeRateType.ConstantQuality)
{
destinationFilename = destinationFilename.Replace(Constants.Quality, task.Quality.ToString());
+ destinationFilename = destinationFilename.Replace(Constants.Bitrate, string.Empty);
}
else
{
destinationFilename = destinationFilename.Replace(Constants.Bitrate, task.VideoBitrate.ToString());
+ destinationFilename = destinationFilename.Replace(Constants.Quality, string.Empty);
}
}
else
diff --git a/win/CS/HandBrakeWPF/Helpers/CliCheckHelper.cs b/win/CS/HandBrakeWPF/Helpers/CliCheckHelper.cs index ede46fa8b..302611e1e 100644 --- a/win/CS/HandBrakeWPF/Helpers/CliCheckHelper.cs +++ b/win/CS/HandBrakeWPF/Helpers/CliCheckHelper.cs @@ -18,9 +18,6 @@ namespace HandBrakeWPF.Helpers using Caliburn.Micro;
- using HandBrake.ApplicationServices;
- using HandBrake.ApplicationServices.Services.Interfaces;
-
using HandBrakeWPF.Services.Interfaces;
/// <summary>
diff --git a/win/CS/HandBrakeWPF/Helpers/FileHelper.cs b/win/CS/HandBrakeWPF/Helpers/FileHelper.cs index 7a882de0b..e9017f8b5 100644 --- a/win/CS/HandBrakeWPF/Helpers/FileHelper.cs +++ b/win/CS/HandBrakeWPF/Helpers/FileHelper.cs @@ -42,7 +42,6 @@ namespace HandBrakeWPF.Helpers {
return true;
}
-
}
catch (ArgumentException)
{
diff --git a/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs b/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs index adb1478dd..327ff8ecc 100644 --- a/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs +++ b/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs @@ -681,6 +681,29 @@ namespace HandBrakeWPF.Properties { }
/// <summary>
+ /// Looks up a localized string similar to The format of the output file. In addition to any supported file system character, you can use the following placeholders that will be replaced when you change title or scan a source.
+ ///
+ ///Live Update Options: {source} {title} {chapters}
+ ///Non-Live Options: {date} {time} {quality} {bitrate} (These only change if you scan a new source, change title or chapters).
+ /// </summary>
+ public static string Options_AdditionalFormatOptions {
+ get {
+ return ResourceManager.GetString("Options_AdditionalFormatOptions", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Available additional Options: {source_path} or {source_folder_name}
+ ///
+ ///Not both at the same time!.
+ /// </summary>
+ public static string Options_DefaultPathAdditionalParams {
+ get {
+ return ResourceManager.GetString("Options_DefaultPathAdditionalParams", resourceCulture);
+ }
+ }
+
+ /// <summary>
/// Looks up a localized string similar to Overwrite?.
/// </summary>
public static string Overwrite {
diff --git a/win/CS/HandBrakeWPF/Properties/Resources.resx b/win/CS/HandBrakeWPF/Properties/Resources.resx index 2d7dbc438..921d898e2 100644 --- a/win/CS/HandBrakeWPF/Properties/Resources.resx +++ b/win/CS/HandBrakeWPF/Properties/Resources.resx @@ -516,4 +516,15 @@ Do you wish to proceed?</value> <data name="PictureSettings_OutputResolution" xml:space="preserve">
<value>Output: {0}</value>
</data>
+ <data name="Options_AdditionalFormatOptions" xml:space="preserve">
+ <value>The format of the output file. In addition to any supported file system character, you can use the following placeholders that will be replaced when you change title or scan a source.
+
+Live Update Options: {source} {title} {chapters}
+Non-Live Options: {date} {time} {quality} {bitrate} (These only change if you scan a new source, change title or chapters)</value>
+ </data>
+ <data name="Options_DefaultPathAdditionalParams" xml:space="preserve">
+ <value>Available additional Options: {source_path} or {source_folder_name}
+
+Not both at the same time!</value>
+ </data>
</root>
\ No newline at end of file diff --git a/win/CS/HandBrakeWPF/Services/EncodeServiceWrapper.cs b/win/CS/HandBrakeWPF/Services/EncodeServiceWrapper.cs index ca71c7a30..796689781 100644 --- a/win/CS/HandBrakeWPF/Services/EncodeServiceWrapper.cs +++ b/win/CS/HandBrakeWPF/Services/EncodeServiceWrapper.cs @@ -146,7 +146,7 @@ namespace HandBrakeWPF.Services }
/// <summary>
- /// Gets or sets IsPaused
+ /// Gets a value indicating whether is pasued.
/// </summary>
public bool IsPasued
{
diff --git a/win/CS/HandBrakeWPF/Utilities/DPIAwareness.cs b/win/CS/HandBrakeWPF/Utilities/DPIAwareness.cs new file mode 100644 index 000000000..91751474c --- /dev/null +++ b/win/CS/HandBrakeWPF/Utilities/DPIAwareness.cs @@ -0,0 +1,66 @@ +// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="DPIAwareness.cs" company="HandBrake Project (http://handbrake.fr)">
+// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
+// </copyright>
+// <summary>
+// Defines the DPIAwareness type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.Utilities
+{
+ using System.Windows;
+ using System.Windows.Media;
+
+ /// <summary>
+ /// The dpi awareness.
+ /// </summary>
+ public class DPIAwareness
+ {
+ /// <summary>
+ /// The dx.
+ /// </summary>
+ private static double dx;
+
+ /// <summary>
+ /// The dy.
+ /// </summary>
+ private static double dy;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="DPIAwareness"/> class.
+ /// </summary>
+ public DPIAwareness()
+ {
+ var presentationSource = PresentationSource.FromVisual(Application.Current.MainWindow);
+ if (presentationSource != null && presentationSource.CompositionTarget != null)
+ {
+ Matrix m = presentationSource.CompositionTarget.TransformToDevice;
+ dx = m.M11;
+ dy = m.M22;
+ }
+ }
+
+ /// <summary>
+ /// Gets the dpix.
+ /// </summary>
+ public double Dpix
+ {
+ get
+ {
+ return dx;
+ }
+ }
+
+ /// <summary>
+ /// Gets the dpi y.
+ /// </summary>
+ public double DpiY
+ {
+ get
+ {
+ return dy;
+ }
+ }
+ }
+}
diff --git a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs index bcdb9ff27..6e6b21a1f 100644 --- a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs @@ -2102,7 +2102,6 @@ namespace HandBrakeWPF.ViewModels {
this.IsEncoding = false;
-
Execute.OnUIThread(
() =>
{
diff --git a/win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs index 859763d3f..b279f95c5 100644 --- a/win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/SubtitlesViewModel.cs @@ -160,7 +160,6 @@ namespace HandBrakeWPF.ViewModels }
}
-
/// <summary>
/// Gets or sets the subtitle behaviours.
/// </summary>
@@ -264,7 +263,6 @@ namespace HandBrakeWPF.ViewModels : LanguageUtilities.GetLanguageCodes(
this.SubtitleBehaviours.SelectedLangauges.ToArray());
-
List<Subtitle> availableTracks =
this.SourceTracks.Where(subtitle => iso6392Codes.Contains(subtitle.LanguageCodeClean)).ToList();
@@ -289,7 +287,6 @@ namespace HandBrakeWPF.ViewModels bool foundLanguage = false;
Subtitle track = sourceTrack;
-
foreach (var item in this.Task.SubtitleTracks)
{
if (item.SourceTrack != null && item.SourceTrack.LanguageCode != null && track.LanguageCode.Contains(item.SourceTrack.LanguageCode))
@@ -606,7 +603,11 @@ namespace HandBrakeWPF.ViewModels }
}
- this.Task.SubtitleTracks.Add(track);
+ var encodeTask = this.Task;
+ if (encodeTask != null)
+ {
+ encodeTask.SubtitleTracks.Add(track);
+ }
}
/// <summary>
diff --git a/win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs index 0f5a0e167..46fa83487 100644 --- a/win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/VideoViewModel.cs @@ -109,11 +109,6 @@ namespace HandBrakeWPF.ViewModels private int qsvPresetValue;
/// <summary>
- /// The extra arguments.
- /// </summary>
- private string extraArguments;
-
- /// <summary>
/// The can clear tracker.
/// </summary>
private bool canClear;
@@ -483,7 +478,7 @@ namespace HandBrakeWPF.ViewModels {
get
{
- return this.SelectedVideoEncoder == VideoEncoder.X264 || this.SelectedVideoEncoder == VideoEncoder.X265 ? "RF" : "QP";
+ return this.SelectedVideoEncoder == VideoEncoder.X264 || this.SelectedVideoEncoder == VideoEncoder.X265 ? "RF" : "QP";
}
}
@@ -965,7 +960,6 @@ namespace HandBrakeWPF.ViewModels }
}
-
/// <summary>
/// Gets or sets H265Profile.
/// </summary>
diff --git a/win/CS/HandBrakeWPF/Views/OptionsView.xaml b/win/CS/HandBrakeWPF/Views/OptionsView.xaml index 4f28678c9..69f57ab74 100644 --- a/win/CS/HandBrakeWPF/Views/OptionsView.xaml +++ b/win/CS/HandBrakeWPF/Views/OptionsView.xaml @@ -1,11 +1,8 @@ <UserControl x:Class="HandBrakeWPF.Views.OptionsView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:cal="http://www.caliburnproject.org"
- xmlns:Helpers="clr-namespace:HandBrakeWPF.Helpers"
xmlns:Options="clr-namespace:HandBrakeWPF.Converters.Options"
- xmlns:dd="clr-namespace:GongSolutions.Wpf.DragDrop;assembly=GongSolutions.Wpf.DragDrop"
xmlns:Converters="clr-namespace:HandBrakeWPF.Converters" xmlns:local="clr-namespace:HandBrakeWPF.Model"
xmlns:Properties="clr-namespace:HandBrakeWPF.Properties"
- xmlns:video="clr-namespace:HandBrakeWPF.Converters.Video"
Style="{StaticResource whiteUserControlStyle}">
<UserControl.Resources>
@@ -175,28 +172,37 @@ <StackPanel Orientation="Vertical" Grid.Column="1" Margin="20,0,0,0">
<CheckBox Content="Automatically name output files" IsChecked="{Binding AutomaticallyNameFiles}" />
- <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
- <TextBlock VerticalAlignment="Center" Text="Default Path: " />
- <TextBox Name="autoNameOutputPath" Text="{Binding AutoNameDefaultPath}" Width="180" />
- <Button Content="Browse" Margin="5,0,0,0" cal:Message.Attach="[Event Click] = [Action BrowseAutoNamePath]" />
- </StackPanel>
- <TextBlock Text="Available Options: {source_path} or {source_folder_name} (Not Both)" />
-
- <StackPanel Orientation="Horizontal" Margin="0,15,0,0">
- <TextBlock VerticalAlignment="Center" Text="Format:" />
- <TextBox Name="autoNameFormat" Text="{Binding AutonameFormat}" Width="180" ToolTip=" {Source} = Source Name, {Title} = Title Number, {Chapters} = Selected Chapters, {Date} = Todays Date," />
- </StackPanel>
- <TextBlock Text="Available Options: {source} {title} {chapters} {date} {time} {quality} {bitrate}" />
+ <Grid Margin="0,5,0,0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="Auto" />
+ </Grid.ColumnDefinitions>
+
+ <TextBlock VerticalAlignment="Center" Text="Default Path: " Grid.Column="0" Grid.Row="0" />
+ <TextBox Name="autoNameOutputPath" Text="{Binding AutoNameDefaultPath}" Width="380" Grid.Column="1" Grid.Row="0"
+ ToolTip="{x:Static Properties:Resources.Options_DefaultPathAdditionalParams}" Style="{StaticResource LongToolTipHolder}" />
+ <Button Content="Browse" Margin="5,0,0,0" Grid.Column="2" Grid.Row="0"
+ cal:Message.Attach="[Event Click] = [Action BrowseAutoNamePath]" />
+
+ <TextBlock VerticalAlignment="Center" Text="Format:" Grid.Column="0" Grid.Row="1" Margin="0,5,0,0" />
+ <TextBox Name="autoNameFormat" Text="{Binding AutonameFormat}" Width="380" Grid.Column="1" Grid.Row="1" Margin="0,5,0,0"
+ ToolTip="{x:Static Properties:Resources.Options_AdditionalFormatOptions}" Style="{StaticResource LongToolTipHolder}" />
+ </Grid>
<StackPanel Orientation="Vertical" Margin="0,15,0,0">
+ <CheckBox Content="Change case to Title Case" IsChecked="{Binding ChangeToTitleCase}" />
<CheckBox Content="Replace underscores with a space" IsChecked="{Binding RemoveUnderscores}"/>
<CheckBox Content="Remove common punctuation" ToolTip="Dash (-), Period (.) and Comma (,) " IsChecked="{Binding RemovePunctuation}" />
- <CheckBox Content="Change case to Title Case" IsChecked="{Binding ChangeToTitleCase}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,15,0,0">
<TextBlock VerticalAlignment="Center" Text="MP4 File Extension:" />
- <ComboBox Name="mp4FileExtension" Width="120" ItemsSource="{Binding Mp4ExtensionOptions}" SelectedIndex="{Binding SelectedMp4Extension}" HorizontalAlignment="Left"></ComboBox>
+ <ComboBox Name="mp4FileExtension" Width="120" ItemsSource="{Binding Mp4ExtensionOptions}" SelectedIndex="{Binding SelectedMp4Extension}" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</StackPanel>
diff --git a/win/CS/HandBrakeWPF/Views/PictureSettingsView.xaml b/win/CS/HandBrakeWPF/Views/PictureSettingsView.xaml index 1458d1dea..53aae130a 100644 --- a/win/CS/HandBrakeWPF/Views/PictureSettingsView.xaml +++ b/win/CS/HandBrakeWPF/Views/PictureSettingsView.xaml @@ -1,4 +1,4 @@ -<UserControl x:Class="HandBrakeWPF.Views.PictureSettingsView"
+ <UserControl x:Class="HandBrakeWPF.Views.PictureSettingsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Converters="clr-namespace:HandBrakeWPF.Converters"
diff --git a/win/CS/HandBrakeWPF/Views/Styles/Styles.xaml b/win/CS/HandBrakeWPF/Views/Styles/Styles.xaml index 2472a6b28..bac308784 100644 --- a/win/CS/HandBrakeWPF/Views/Styles/Styles.xaml +++ b/win/CS/HandBrakeWPF/Views/Styles/Styles.xaml @@ -9,6 +9,20 @@ </Style.Triggers>
</Style>
+ <Style x:Key="LongToolTipHolder" TargetType="FrameworkElement">
+ <Setter Property="ToolTipService.ShowDuration" Value="20000" />
+ </Style>
+
+ <Style TargetType="ToolTip">
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <TextBlock TextWrapping="Wrap" Width="450" Text="{Binding}" />
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
<Style x:Key="whiteUserControlStyle" TargetType="UserControl">
<Style.Triggers>
<DataTrigger Binding="{Binding UseSystemColours}" Value="False">
diff --git a/win/CS/HandBrakeWPF/Views/VideoView.xaml b/win/CS/HandBrakeWPF/Views/VideoView.xaml index a7b87a3a7..039625b67 100644 --- a/win/CS/HandBrakeWPF/Views/VideoView.xaml +++ b/win/CS/HandBrakeWPF/Views/VideoView.xaml @@ -15,20 +15,6 @@ <Converters:EnumComboConverter x:Key="enumComboConverter" />
<Converters:InverseBooleanConverter x:Key="inverseConverter" />
<Video:VideoEncoderConverter x:Key="videoEncoderConverter" />
-
- <Style x:Key="LongToolTipHolder" TargetType="FrameworkElement">
- <Setter Property="ToolTipService.ShowDuration" Value="20000" />
- </Style>
-
- <Style TargetType="ToolTip">
- <Setter Property="ContentTemplate">
- <Setter.Value>
- <DataTemplate>
- <TextBlock TextWrapping="Wrap" Width="450" Text="{Binding}" />
- </DataTemplate>
- </Setter.Value>
- </Setter>
- </Style>
</UserControl.Resources>
<Grid Margin="10,5,0,0">
|