本次发布聚焦降低误报风险、规范发布产物和重构仓库文档。 主要变更: - 删除开机自启功能,移除 Windows 启动项注册表写入逻辑。 - 新增标准应用清单,声明应用以普通用户权限运行。 - 新增 framework-dependent 发布脚本,保持发布包不内置 .NET 运行时。 - 禁用单文件、自解压、裁剪和 ReadyToRun 发布方式,保持产物结构透明。 - 将发布资产命名规范化为 omni-notify-v0.2.0-win-x64.zip。 - 重写文档结构:README.md 面向用户,docs/development.md 面向开发者。 - 删除过时且内容重复的 PRD.md 与 docs/usage.md。 验证: - dotnet build .\OmniNotify.csproj -c Release 构建通过。 - 发布脚本成功生成 v0.2.0 win-x64 压缩包。 - 发布目录未包含 coreclr.dll、hostfxr.dll、hostpolicy.dll 等 .NET 运行时文件。
205 lines
13 KiB
XML
205 lines
13 KiB
XML
<Window x:Class="OmniNotify.MainWindow"
|
|
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"
|
|
mc:Ignorable="d"
|
|
Title="Omni-Notify"
|
|
MinHeight="680"
|
|
MinWidth="1040"
|
|
Height="760"
|
|
Width="1180"
|
|
Background="#F5F7FA">
|
|
<Grid Margin="18">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<DockPanel Margin="0,0,0,14">
|
|
<StackPanel>
|
|
<TextBlock Text="Omni-Notify" FontSize="26" FontWeight="SemiBold" Foreground="#1D2733" />
|
|
<TextBlock x:Name="ServerStatusText" Margin="0,4,0,0" Foreground="#5C6673" />
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal" DockPanel.Dock="Right" HorizontalAlignment="Right">
|
|
<Button Content="发送测试" Width="104" Height="34" Margin="0,0,8,0" Click="SendTest_Click" />
|
|
<Button Content="保存配置" Width="104" Height="34" Click="Save_Click" />
|
|
</StackPanel>
|
|
</DockPanel>
|
|
|
|
<TabControl x:Name="MainTabs" Grid.Row="1">
|
|
<TabItem Header="频道">
|
|
<Grid Margin="0,14,0,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="280" />
|
|
<ColumnDefinition Width="14" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Border Background="White" BorderBrush="#D8DEE8" BorderThickness="1" CornerRadius="6" Padding="12">
|
|
<DockPanel>
|
|
<StackPanel DockPanel.Dock="Bottom" Margin="0,12,0,0">
|
|
<Button Content="新建频道" Height="32" Margin="0,0,0,8" Click="AddChannel_Click" />
|
|
<Button Content="删除频道" Height="32" Click="DeleteChannel_Click" />
|
|
</StackPanel>
|
|
<ListBox x:Name="ChannelList" DisplayMemberPath="Name" SelectionChanged="ChannelList_SelectionChanged" />
|
|
</DockPanel>
|
|
</Border>
|
|
|
|
<ScrollViewer Grid.Column="2" VerticalScrollBarVisibility="Auto">
|
|
<Border Background="White" BorderBrush="#D8DEE8" BorderThickness="1" CornerRadius="6" Padding="18">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<GroupBox Header="频道标识" Grid.ColumnSpan="2" Margin="0,0,0,12">
|
|
<Grid Margin="12">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Text="频道名" VerticalAlignment="Center" />
|
|
<TextBox x:Name="ChannelNameBox" Grid.Column="1" />
|
|
</Grid>
|
|
</GroupBox>
|
|
|
|
<GroupBox Header="多屏与位置" Grid.Row="1" Margin="0,0,8,12">
|
|
<UniformGrid Columns="2" Margin="12">
|
|
<TextBlock Text="显示器序号" VerticalAlignment="Center" />
|
|
<TextBox x:Name="ScreenIndexBox" />
|
|
<TextBlock Text="九宫格位置" VerticalAlignment="Center" />
|
|
<ComboBox x:Name="AnchorBox" DisplayMemberPath="Label" SelectedValuePath="Value" />
|
|
<TextBlock Text="横向边距" VerticalAlignment="Center" />
|
|
<TextBox x:Name="MarginXBox" />
|
|
<TextBlock Text="纵向边距" VerticalAlignment="Center" />
|
|
<TextBox x:Name="MarginYBox" />
|
|
</UniformGrid>
|
|
</GroupBox>
|
|
|
|
<GroupBox Header="尺寸与排版" Grid.Row="1" Grid.Column="1" Margin="8,0,0,12">
|
|
<UniformGrid Columns="2" Margin="12">
|
|
<TextBlock Text="宽度" VerticalAlignment="Center" />
|
|
<TextBox x:Name="WidthBox" />
|
|
<TextBlock Text="最大高度" VerticalAlignment="Center" />
|
|
<TextBox x:Name="MaxHeightBox" />
|
|
<TextBlock Text="内边距" VerticalAlignment="Center" />
|
|
<TextBox x:Name="PaddingBox" />
|
|
<TextBlock Text="字体" VerticalAlignment="Center" />
|
|
<TextBox x:Name="FontFamilyBox" />
|
|
</UniformGrid>
|
|
</GroupBox>
|
|
|
|
<GroupBox Header="视觉样式" Grid.Row="2" Margin="0,0,8,12">
|
|
<UniformGrid Columns="2" Margin="12">
|
|
<TextBlock Text="标题字号" VerticalAlignment="Center" />
|
|
<TextBox x:Name="TitleFontSizeBox" />
|
|
<TextBlock Text="正文字号" VerticalAlignment="Center" />
|
|
<TextBox x:Name="BodyFontSizeBox" />
|
|
<TextBlock Text="文字颜色" VerticalAlignment="Center" />
|
|
<TextBox x:Name="TextColorBox" />
|
|
<TextBlock Text="背景颜色" VerticalAlignment="Center" />
|
|
<TextBox x:Name="BackgroundColorBox" />
|
|
<TextBlock Text="背景透明度" VerticalAlignment="Center" />
|
|
<TextBox x:Name="BackgroundOpacityBox" />
|
|
<TextBlock Text="边框颜色" VerticalAlignment="Center" />
|
|
<TextBox x:Name="BorderColorBox" />
|
|
<TextBlock Text="边框透明度" VerticalAlignment="Center" />
|
|
<TextBox x:Name="BorderOpacityBox" />
|
|
<TextBlock Text="整体透明度" VerticalAlignment="Center" />
|
|
<TextBox x:Name="OverallOpacityBox" />
|
|
</UniformGrid>
|
|
</GroupBox>
|
|
|
|
<GroupBox Header="时间、动画与高级行为" Grid.Row="2" Grid.Column="1" Margin="8,0,0,12">
|
|
<UniformGrid Columns="2" Margin="12">
|
|
<TextBlock Text="存在时间(秒)" VerticalAlignment="Center" />
|
|
<TextBox x:Name="LifetimeBox" />
|
|
<TextBlock Text="出现动画" VerticalAlignment="Center" />
|
|
<ComboBox x:Name="EnterAnimationBox" DisplayMemberPath="Label" SelectedValuePath="Value" />
|
|
<TextBlock Text="消失动画" VerticalAlignment="Center" />
|
|
<ComboBox x:Name="ExitAnimationBox" DisplayMemberPath="Label" SelectedValuePath="Value" />
|
|
<TextBlock Text="堆叠模式" VerticalAlignment="Center" />
|
|
<ComboBox x:Name="StackModeBox" DisplayMemberPath="Label" SelectedValuePath="Value" />
|
|
<TextBlock Text="溢出模式" VerticalAlignment="Center" />
|
|
<ComboBox x:Name="OverflowModeBox" DisplayMemberPath="Label" SelectedValuePath="Value" />
|
|
<TextBlock Text="分割间隔(秒)" VerticalAlignment="Center" />
|
|
<TextBox x:Name="SplitIntervalBox" />
|
|
<TextBlock Text="滚动停留(秒)" VerticalAlignment="Center" />
|
|
<TextBox x:Name="VerticalScrollHoldBox" />
|
|
<TextBlock Text="滚动速度(px/秒)" VerticalAlignment="Center" />
|
|
<TextBox x:Name="VerticalScrollSpeedBox" />
|
|
</UniformGrid>
|
|
</GroupBox>
|
|
</Grid>
|
|
</Border>
|
|
</ScrollViewer>
|
|
</Grid>
|
|
</TabItem>
|
|
|
|
<TabItem Header="历史">
|
|
<Grid Margin="0,14,0,0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
<Border Background="White" BorderBrush="#D8DEE8" BorderThickness="1" CornerRadius="6" Padding="12" Margin="0,0,0,12">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="160" />
|
|
<ColumnDefinition Width="160" />
|
|
<ColumnDefinition Width="120" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox x:Name="SearchBox" Height="32" Margin="0,0,8,0" TextChanged="HistoryFilter_Changed" />
|
|
<ComboBox x:Name="HistoryChannelFilter" Grid.Column="1" Margin="0,0,8,0" SelectionChanged="HistoryFilter_Changed" />
|
|
<ComboBox x:Name="HistoryStatusFilter" Grid.Column="2" Margin="0,0,8,0" SelectionChanged="HistoryFilter_Changed" />
|
|
<Button Content="清空历史" Grid.Column="3" Click="ClearHistory_Click" />
|
|
</Grid>
|
|
</Border>
|
|
<DataGrid x:Name="HistoryGrid" Grid.Row="1" AutoGenerateColumns="False" IsReadOnly="True" SelectionMode="Single">
|
|
<DataGrid.ContextMenu>
|
|
<ContextMenu>
|
|
<MenuItem Header="复制完整内容" Click="CopyHistory_Click" />
|
|
<MenuItem Header="重新显示该弹窗" Click="ReplayHistory_Click" />
|
|
</ContextMenu>
|
|
</DataGrid.ContextMenu>
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn Header="接收时间" Binding="{Binding ReceivedAt}" Width="170" />
|
|
<DataGridTextColumn Header="频道来源" Binding="{Binding Channel}" Width="140" />
|
|
<DataGridTextColumn Header="状态" Binding="{Binding Status}" Width="130" />
|
|
<DataGridTextColumn Header="标题" Binding="{Binding Title}" Width="220" />
|
|
<DataGridTextColumn Header="正文" Binding="{Binding Body}" Width="*" />
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
</Grid>
|
|
</TabItem>
|
|
|
|
<TabItem Header="全局设置">
|
|
<Border Background="White" BorderBrush="#D8DEE8" BorderThickness="1" CornerRadius="6" Padding="18" Margin="0,14,0,0">
|
|
<StackPanel Width="520" HorizontalAlignment="Left">
|
|
<CheckBox x:Name="DndBox" Content="免打扰模式:接收但不弹窗" Margin="0,0,0,14" />
|
|
<UniformGrid Columns="2">
|
|
<TextBlock Text="每秒最多处理消息数" VerticalAlignment="Center" />
|
|
<TextBox x:Name="RateLimitBox" />
|
|
<TextBlock Text="历史保留天数" VerticalAlignment="Center" />
|
|
<TextBox x:Name="RetainDaysBox" />
|
|
<TextBlock Text="历史最多保留条数" VerticalAlignment="Center" />
|
|
<TextBox x:Name="RetainCountBox" />
|
|
<TextBlock Text="本地监听端口" VerticalAlignment="Center" />
|
|
<TextBox x:Name="PortBox" />
|
|
</UniformGrid>
|
|
<Button x:Name="ResetBreakerButton" Content="解除熔断" Height="34" Margin="0,18,0,0" Click="ResetBreaker_Click" />
|
|
</StackPanel>
|
|
</Border>
|
|
</TabItem>
|
|
</TabControl>
|
|
</Grid>
|
|
</Window>
|