BililiveRecorder/BililiveRecorder.WPF/SettingsWindow.xaml
2018-11-07 07:14:00 +08:00

153 lines
8.9 KiB
XML

<Window x:Class="BililiveRecorder.WPF.SettingsWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BililiveRecorder.WPF"
xmlns:core="clr-namespace:BililiveRecorder.Core;assembly=BililiveRecorder.Core"
xmlns:flv="clr-namespace:BililiveRecorder.FlvProcessor;assembly=BililiveRecorder.FlvProcessor"
mc:Ignorable="d"
ShowInTaskbar="False" ResizeMode="NoResize"
Title="设置 - 录播姬" Height="300" Width="250">
<Window.Resources>
<local:ValueConverterGroup x:Key="EnumToInvertBooleanConverter">
<local:EnumToBooleanConverter/>
<local:BooleanInverterConverter/>
</local:ValueConverterGroup>
<local:EnumToBooleanConverter x:Key="EnumToBooleanConverter"/>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.Resources>
<ResourceDictionary>
<Style TargetType="TextBlock">
<Style.Setters>
<Setter Property="HorizontalAlignment" Value="Right"></Setter>
<Setter Property="VerticalAlignment" Value="Center"></Setter>
</Style.Setters>
</Style>
</ResourceDictionary>
</Grid.Resources>
<!--
<TextBlock Grid.Row="0" Grid.Column="0">保存位置:</TextBlock>
<Grid Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<local:ClickSelectTextBox Grid.Column="0" Text="{Binding SavePath}"/>
<Button Grid.Column="1" Click="Button_Click">浏览...</Button>
</Grid>
-->
<TextBlock Grid.Row="1" Grid.Column="0">剪辑过去时长:</TextBlock>
<Grid Grid.Row="1" Grid.Column="1" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<local:ClickSelectTextBox Grid.Column="0" Text="{Binding ClipLengthPast,Delay=500,UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding Path=EnabledFeature, Converter={StaticResource EnumToInvertBooleanConverter},
ConverterParameter={x:Static flv:EnabledFeature.RecordOnly}}"/>
<TextBlock Grid.Column="1" Margin="5,0,10,0"></TextBlock>
</Grid>
<TextBlock Grid.Row="2" Grid.Column="0">剪辑将来时长:</TextBlock>
<Grid Grid.Row="2" Grid.Column="1" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<local:ClickSelectTextBox Grid.Column="0" Text="{Binding ClipLengthFuture,Delay=500,UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding Path=EnabledFeature, Converter={StaticResource EnumToInvertBooleanConverter},
ConverterParameter={x:Static flv:EnabledFeature.RecordOnly}}"/>
<TextBlock Grid.Column="1" Margin="5,0,10,0"></TextBlock>
</Grid>
<StackPanel Grid.Row="3" Grid.ColumnSpan="2" Margin="10,0">
<RadioButton GroupName="EnabledFeature" IsChecked="{Binding Path=EnabledFeature, Converter={StaticResource EnumToBooleanConverter},
ConverterParameter={x:Static flv:EnabledFeature.ClipOnly}}" ToolTipService.InitialShowDelay="0"
ToolTip="不保存所有直播数据到硬盘">只使用即时回放剪辑功能</RadioButton>
<RadioButton GroupName="EnabledFeature" IsChecked="{Binding Path=EnabledFeature, Converter={StaticResource EnumToBooleanConverter},
ConverterParameter={x:Static flv:EnabledFeature.RecordOnly}}" ToolTipService.InitialShowDelay="0"
ToolTip="占内存更少,但不能剪辑回放">只使用录制功能</RadioButton>
<RadioButton GroupName="EnabledFeature" IsChecked="{Binding Path=EnabledFeature, Converter={StaticResource EnumToBooleanConverter},
ConverterParameter={x:Static flv:EnabledFeature.Both}}">同时启用两个功能</RadioButton>
</StackPanel>
<Separator Grid.Row="4" Grid.ColumnSpan="2" />
<TextBlock Grid.Row="5" Grid.Column="0">自动切割单位:</TextBlock>
<Grid Grid.Row="5" Grid.Column="1" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<local:ClickSelectTextBox Grid.Column="0" Text="{Binding CuttingNumber,Delay=500,UpdateSourceTrigger=PropertyChanged}"
ToolTipService.InitialShowDelay="0" ToolTipService.ShowDuration="20000"
IsEnabled="{Binding Path=CuttingMode, Converter={StaticResource EnumToInvertBooleanConverter},
ConverterParameter={x:Static flv:AutoCuttingMode.Disabled}}">
<local:ClickSelectTextBox.ToolTip>
<ToolTip>
<StackPanel>
<StackPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Left"/>
</Style>
</StackPanel.Resources>
<TextBlock FontWeight="Bold">注:</TextBlock>
<TextBlock>实际切割出来的视频文件会比设定的要大一点</TextBlock>
<TextBlock>根据实际情况不同,可能会 大不到1MiB 或 长几秒钟</TextBlock>
<TextBlock>请根据实际需求调整</TextBlock>
</StackPanel>
</ToolTip>
</local:ClickSelectTextBox.ToolTip>
</local:ClickSelectTextBox>
<TextBlock Grid.Column="1" Margin="5,0,10,0">分 或 MiB</TextBlock>
</Grid>
<StackPanel Grid.Row="6" Grid.ColumnSpan="2" Margin="10,0">
<RadioButton GroupName="CuttingMode" IsChecked="{Binding Path=CuttingMode, Converter={StaticResource EnumToBooleanConverter},
ConverterParameter={x:Static flv:AutoCuttingMode.Disabled}}">不切割录制的视频文件</RadioButton>
<RadioButton GroupName="CuttingMode" IsChecked="{Binding Path=CuttingMode, Converter={StaticResource EnumToBooleanConverter},
ConverterParameter={x:Static flv:AutoCuttingMode.ByTime}}">根据视频时间(分)切割</RadioButton>
<RadioButton GroupName="CuttingMode" IsChecked="{Binding Path=CuttingMode, Converter={StaticResource EnumToBooleanConverter},
ConverterParameter={x:Static flv:AutoCuttingMode.BySize}}">根据文件大小(MiB)切割</RadioButton>
</StackPanel>
<!--
<TextBlock Grid.Row="4" Grid.Column="0"></TextBlock>
<StackPanel Grid.Row="4" Grid.Column="1">
</StackPanel>
-->
</Grid>
<StackPanel Orientation="Horizontal" Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Button Click="Save" Padding="20,5" Margin="5" IsDefault="True">保存</Button>
<Button Click="Cancel" Padding="20,5" Margin="5" IsCancel="True">取消</Button>
</StackPanel>
</Grid>
</Window>