借助网络配置,控制Modbus工具的日志显示,避免卡死界面
智能大石头 authored at 2021-12-11 22:09:19
5.16 KiB
XCoder
<Window xmlns="https://github.com/avaloniaui"
        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"
        mc:Ignorable="d" d:DesignWidth="700" d:DesignHeight="500"
        x:Class="XCoderAv.Views.SpeechWindow"
        Title="语音助手" Width="700" Height="500"
        WindowStartupLocation="CenterOwner">
    <Window.Styles>
        <Style Selector="Border.GroupBorder">
            <Setter Property="BorderBrush" Value="#D0D0D0"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="Margin" Value="0,0,0,6"/>
        </Style>
        <Style Selector="TextBlock.SectionTitle">
            <Setter Property="FontWeight" Value="Bold"/>
            <Setter Property="Margin" Value="4,3"/>
            <Setter Property="FontSize" Value="13"/>
        </Style>
        <Style Selector="Button.ActionButton">
            <Setter Property="Height" Value="34"/>
            <Setter Property="Margin" Value="2"/>
            <Setter Property="Padding" Value="12,0"/>
            <Setter Property="FontSize" Value="13"/>
        </Style>
    </Window.Styles>

    <Grid Margin="8">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <!-- 语音设置 -->
        <Border Grid.Row="0" Classes="GroupBorder">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <TextBlock Text="语音设置" Classes="SectionTitle"/>

                <Grid Grid.Row="1" Margin="4,0,4,2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <TextBlock Grid.Column="0" Text="语音角色" VerticalAlignment="Center" Width="70"/>
                    <ComboBox Grid.Column="1" ItemsSource="{Binding Voices}"
                              SelectedIndex="{Binding SelectedVoiceIndex}"
                              Height="28" Margin="2"/>
                </Grid>

                <Grid Grid.Row="2" Margin="4,0,4,4">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <TextBlock Grid.Column="0" Text="音量" VerticalAlignment="Center" Width="40"/>
                    <Slider Grid.Column="1" Minimum="0" Maximum="100"
                            Value="{Binding Volume}" Margin="4,0"
                            TickFrequency="10" IsSnapToTickEnabled="True"
                            VerticalAlignment="Center"/>
                    <TextBlock Grid.Column="2" Text="{Binding Volume}" 
                               VerticalAlignment="Center" Width="40" TextAlignment="Center"/>

                    <TextBlock Grid.Column="3" Text="语速" VerticalAlignment="Center" Width="40"/>
                    <Slider Grid.Column="4" Minimum="-10" Maximum="10"
                            Value="{Binding Rate}" Margin="4,0"
                            TickFrequency="1" IsSnapToTickEnabled="True"
                            VerticalAlignment="Center"/>
                    <TextBlock Grid.Column="5" Text="{Binding Rate}" 
                               VerticalAlignment="Center" Width="30" TextAlignment="Center"/>
                </Grid>
            </Grid>
        </Border>

        <!-- 朗读内容 -->
        <Border Grid.Row="1" Classes="GroupBorder">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <TextBlock Text="朗读内容" Classes="SectionTitle"/>
                <TextBox Grid.Row="1" Text="{Binding SpeakText}" AcceptsReturn="True"
                         MinHeight="60" FontSize="14" Margin="4,0,4,4"/>
            </Grid>
        </Border>

        <!-- 操作按钮 -->
        <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center"
                    VerticalAlignment="Center" Spacing="10">
            <Button Content="朗读" Command="{Binding SpeakCommand}" Classes="ActionButton" Width="100"/>
            <Button Content="停止" Command="{Binding StopCommand}" Classes="ActionButton" Width="100"/>
            <Button Content="保存 WAV" Command="{Binding SaveWavCommand}" Classes="ActionButton" Width="100"/>
        </StackPanel>

        <!-- 状态栏 -->
        <Border Grid.Row="3" BorderBrush="#D0D0D0" BorderThickness="0,1,0,0" Padding="4,2">
            <TextBlock Text="{Binding Status}"/>
        </Border>
    </Grid>
</Window>