支持多开, 不同存档

This commit is contained in:
ZouJin 2023-10-11 01:03:23 +08:00
parent 931fd47235
commit 1f3bd424ad
13 changed files with 171 additions and 233 deletions

View File

@ -11,6 +11,14 @@ namespace VPet_Simulator.Windows.Interface
/// </summary> /// </summary>
public interface IMainWindow public interface IMainWindow
{ {
/// <summary>
/// 存档前缀, 用于多开游戏, 为空时使用默认存档, 不为空时前缀的前缀一般为'-'
/// </summary>
string PrefixSave { get; }
/// <summary>
/// 启动参数
/// </summary>
LPS_D Args { get; }
/// <summary> /// <summary>
/// 是否为Steam用户 /// 是否为Steam用户
/// </summary> /// </summary>

View File

@ -15,6 +15,12 @@ namespace VPet_Simulator.Windows
#endif #endif
//AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; //AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
} }
public static string[] Args { get; set; }
protected override void OnStartup(StartupEventArgs e)
{
Args = e.Args;
}
private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{ {
@ -23,14 +29,15 @@ namespace VPet_Simulator.Windows
var expt = e.Exception.ToString(); var expt = e.Exception.ToString();
if (expt.Contains("value") && expt.Contains("Panuon.WPF.UI.Internal.Utils") && expt.Contains("NaN")) if (expt.Contains("value") && expt.Contains("Panuon.WPF.UI.Internal.Utils") && expt.Contains("NaN"))
{ {
MessageBox.Show("由于修改游戏数据导致数据溢出,存档可能会出错\n开发者提醒您请不要使用过于超模的MOD".Translate()); MessageBox.Show("由于修改游戏数据导致数据溢出,存档可能会出错\n开发者提醒您请不要使用过于超模的MOD".Translate());
return; return;
} }
else if (expt.Contains("System.IO.FileNotFoundException") && expt.Contains("cache")) else if (expt.Contains("System.IO.FileNotFoundException") && expt.Contains("cache"))
{ {
MessageBox.Show("缓存被其他软件删除,游戏无法继续运行\n请重启游戏重新生成缓存".Translate()); MessageBox.Show("缓存被其他软件删除,游戏无法继续运行\n请重启游戏重新生成缓存".Translate());
return; return;
}else if (expt.Contains("0x80070008")) }
else if (expt.Contains("0x80070008"))
{ {
MessageBox.Show("游戏内存不足,请修改设置中渲染分辨率以便降低内存使用".Translate()); MessageBox.Show("游戏内存不足,请修改设置中渲染分辨率以便降低内存使用".Translate());
} }

View File

@ -31,6 +31,8 @@ namespace VPet_Simulator.Windows
{ {
public readonly string ModPath = Environment.CurrentDirectory + @"\mod"; public readonly string ModPath = Environment.CurrentDirectory + @"\mod";
public bool IsSteamUser { get; } public bool IsSteamUser { get; }
public LPS_D Args { get; }
public string PrefixSave { get; } = "";
public Setting Set { get; set; } public Setting Set { get; set; }
public List<PetLoader> Pets { get; set; } = new List<PetLoader>(); public List<PetLoader> Pets { get; set; } = new List<PetLoader>();
public List<CoreMOD> CoreMODs = new List<CoreMOD>(); public List<CoreMOD> CoreMODs = new List<CoreMOD>();
@ -186,16 +188,16 @@ namespace VPet_Simulator.Windows
//timecount = DateTime.Now; //timecount = DateTime.Now;
} }
Set.StartRecordLastPoint = new Point(Dispatcher.Invoke(() => Left), Dispatcher.Invoke(() => Top)); Set.StartRecordLastPoint = new Point(Dispatcher.Invoke(() => Left), Dispatcher.Invoke(() => Top));
File.WriteAllText(ExtensionValue.BaseDirectory + @"\Setting.lps", Set.ToString()); File.WriteAllText(ExtensionValue.BaseDirectory + @$"\Setting{PrefixSave}.lps", Set.ToString());
if (!Directory.Exists(ExtensionValue.BaseDirectory + @"\Saves")) if (!Directory.Exists(ExtensionValue.BaseDirectory + @"\Saves"))
Directory.CreateDirectory(ExtensionValue.BaseDirectory + @"\Saves"); Directory.CreateDirectory(ExtensionValue.BaseDirectory + @"\Saves");
if (Core != null && Core.Save != null) if (Core != null && Core.Save != null)
{ {
var ds = new List<string>(Directory.GetFiles(ExtensionValue.BaseDirectory + @"\Saves", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x => var ds = new List<string>(Directory.GetFiles(ExtensionValue.BaseDirectory + @"\Saves", $"Save{PrefixSave}_*.lps")).OrderBy(x =>
{ {
if (int.TryParse(x.Split('_')[1].Split('.')[0], out int i)) if (int.TryParse(x.Split('_').Last().Split('.')[0], out int i))
return i; return i;
return 0; return 0;
}).ToList(); }).ToList();
@ -204,16 +206,17 @@ namespace VPet_Simulator.Windows
File.Delete(ds[0]); File.Delete(ds[0]);
ds.RemoveAt(0); ds.RemoveAt(0);
} }
if (File.Exists(ExtensionValue.BaseDirectory + $"\\Saves\\Save_{st}.lps")) if (File.Exists(ExtensionValue.BaseDirectory + $"\\Saves\\Save{PrefixSave}_{st}.lps"))
File.Delete(ExtensionValue.BaseDirectory + $"\\Saves\\Save_{st}.lps"); File.Delete(ExtensionValue.BaseDirectory + $"\\Saves\\Save{PrefixSave}_{st}.lps");
File.WriteAllText(ExtensionValue.BaseDirectory + $"\\Saves\\Save_{st}.lps", GameSavesData.ToLPS().ToString()); File.WriteAllText(ExtensionValue.BaseDirectory + $"\\Saves\\Save{PrefixSave}_{st}.lps", GameSavesData.ToLPS().ToString());
if (File.Exists(ExtensionValue.BaseDirectory + @"\Save.bkp"))
File.Delete(ExtensionValue.BaseDirectory + @"\Save.bkp");
if (File.Exists(ExtensionValue.BaseDirectory + @"\Save.lps")) if (File.Exists(ExtensionValue.BaseDirectory + @"\Save.lps"))
{
if (File.Exists(ExtensionValue.BaseDirectory + @"\Save.bkp"))
File.Delete(ExtensionValue.BaseDirectory + @"\Save.bkp");
File.Move(ExtensionValue.BaseDirectory + @"\Save.lps", ExtensionValue.BaseDirectory + @"\Save.bkp"); File.Move(ExtensionValue.BaseDirectory + @"\Save.lps", ExtensionValue.BaseDirectory + @"\Save.bkp");
}
} }
} }

View File

@ -51,7 +51,7 @@ namespace VPet_Simulator.Windows
//存档前缀 //存档前缀
if (Args.ContainsLine("prefix")) if (Args.ContainsLine("prefix"))
PrefixSave = '_' + Args["prefix"].Info; PrefixSave = '-' + Args["prefix"].Info;
#if X64 #if X64
PNGAnimation.MaxLoadNumber = 50; PNGAnimation.MaxLoadNumber = 50;
@ -296,16 +296,17 @@ namespace VPet_Simulator.Windows
{ {
if (Directory.Exists(ExtensionValue.BaseDirectory + @"\Saves")) if (Directory.Exists(ExtensionValue.BaseDirectory + @"\Saves"))
{ {
var ds = new List<string>(Directory.GetFiles(ExtensionValue.BaseDirectory + @"\Saves", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x => var ds = new List<string>(Directory.GetFiles(ExtensionValue.BaseDirectory + @"\Saves", $@"Save{PrefixSave}_*.lps"))
{ .OrderBy(x =>
if (int.TryParse(x.Split('_')[1].Split('.')[0], out int i)) {
return i; if (int.TryParse(x.Split('_').Last().Split('.')[0], out int i))
return 0; return i;
}).ToList(); return 0;
}).ToList();
if (ds.Count != 0) if (ds.Count != 0)
{ {
int.TryParse(ds.Last().Split('_')[1].Split('.')[0], out int lastid); int.TryParse(ds.Last().Split('_').Last().Split('.')[0], out int lastid);
if (Set.SaveTimes < lastid) if (Set.SaveTimes < lastid)
{ {
Set.SaveTimes = lastid; Set.SaveTimes = lastid;

View File

@ -0,0 +1,8 @@
{
"profiles": {
"VPet-Simulator.Windows": {
"commandName": "Project",
"commandLineArgs": "prefix#test:|"
}
}
}

View File

@ -5,7 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:pu="https://opensource.panuon.com/wpf-ui" xmlns:local="clr-namespace:VPet_Simulator.Windows" xmlns:pu="https://opensource.panuon.com/wpf-ui" xmlns:local="clr-namespace:VPet_Simulator.Windows"
mc:Ignorable="d" Title="{ll:Str 更好买}" Height="550" Width="800" FontSize="14" mc:Ignorable="d" Height="550" Width="800" FontSize="14"
WindowStartupLocation="CenterScreen" Background="#E0F6FF" pu:WindowXCaption.Height="45" WindowStartupLocation="CenterScreen" Background="#E0F6FF" pu:WindowXCaption.Height="45"
pu:WindowXCaption.Background="{DynamicResource DARKPrimary}" pu:WindowXCaption.Foreground="#FFFFFF" pu:WindowXCaption.Background="{DynamicResource DARKPrimary}" pu:WindowXCaption.Foreground="#FFFFFF"
pu:WindowXCaption.Buttons="Close" Icon="/Res/BetterBuy.png" pu:WindowXCaption.Buttons="Close" Icon="/Res/BetterBuy.png"

View File

@ -42,6 +42,7 @@ namespace VPet_Simulator.Windows
{ {
InitializeComponent(); InitializeComponent();
this.mw = mw; this.mw = mw;
Title = "更好买".Translate() + ' ' + mw.PrefixSave;
LsbSortRule.SelectedIndex = mw.Set["betterbuy"].GetInt("lastorder"); LsbSortRule.SelectedIndex = mw.Set["betterbuy"].GetInt("lastorder");
LsbSortAsc.SelectedIndex = mw.Set["betterbuy"].GetBool("lastasc") ? 0 : 1; LsbSortAsc.SelectedIndex = mw.Set["betterbuy"].GetBool("lastasc") ? 0 : 1;
AllowChange = true; AllowChange = true;

View File

@ -1,175 +1,96 @@
<Window <Window x:Class="VPet_Simulator.Windows.winConsole" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Class="VPet_Simulator.Windows.winConsole" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ll="clr-namespace:LinePutScript.Localization.WPF;assembly=LinePutScript.Localization.WPF"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:VPet_Simulator.Windows"
xmlns:ll="clr-namespace:LinePutScript.Localization.WPF;assembly=LinePutScript.Localization.WPF" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:VPet_Simulator.Windows" xmlns:pu="clr-namespace:Panuon.WPF.UI;assembly=Panuon.WPF.UI" Width="450" Height="450" FontSize="16"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
xmlns:pu="clr-namespace:Panuon.WPF.UI;assembly=Panuon.WPF.UI" <TabControl pu:TabControlHelper.HeaderPanelBackground="{DynamicResource PrimaryLight}"
Title="{ll:Str 桌宠管理开发控制台}" pu:TabControlHelper.ItemsSelectedBackground="White">
Width="450" <TabItem Header="{ll:Str 动画列表}">
Height="450" <Grid>
FontSize="16" <Label Background="{x:Null}" Content="{ll:Str '双击查看动画效果'}" />
mc:Ignorable="d"> <Label Margin="0,20,0,0" VerticalAlignment="Top" Background="{x:Null}" Content="{ll:Str '选择状态模式:'}" />
<TabControl pu:TabControlHelper.HeaderPanelBackground="{DynamicResource PrimaryLight}" pu:TabControlHelper.ItemsSelectedBackground="White">
<TabItem Header="{ll:Str 动画列表}">
<Grid>
<Label Background="{x:Null}" Content="{ll:Str '双击查看动画效果'}" />
<Label
Margin="0,20,0,0"
VerticalAlignment="Top"
Background="{x:Null}"
Content="{ll:Str '选择状态模式:'}" />
<ComboBox <ComboBox x:Name="ComboxMode" Margin="110,25,5,0" VerticalAlignment="Top" SelectedIndex="1">
x:Name="ComboxMode" <ComboBoxItem Content="Happy" />
Margin="110,25,5,0" <ComboBoxItem Content="Nomal" />
VerticalAlignment="Top" <ComboBoxItem Content="PoorCondition" />
SelectedIndex="1"> <ComboBoxItem Content="Ill" />
<ComboBoxItem Content="Happy" /> </ComboBox>
<ComboBoxItem Content="Nomal" /> <Label x:Name="LabelNowPlay" HorizontalAlignment="Right" Background="{x:Null}" Content="" />
<ComboBoxItem Content="PoorCondition" /> <ListBox x:Name="GraphListBox" Margin="0,49,0,0" MouseDoubleClick="GraphListBox_MouseDoubleClick" />
<ComboBoxItem Content="Ill" /> </Grid>
</ComboBox> </TabItem>
<Label <TabItem Header="{ll:Str 动画播放}">
x:Name="LabelNowPlay" <Grid>
HorizontalAlignment="Right" <Grid.ColumnDefinitions>
Background="{x:Null}" <ColumnDefinition Width="1*" />
Content="" /> <ColumnDefinition Width="1*" />
<ListBox </Grid.ColumnDefinitions>
x:Name="GraphListBox" <Grid.RowDefinitions>
Margin="0,49,0,0" <RowDefinition Height="15*" />
MouseDoubleClick="GraphListBox_MouseDoubleClick" /> <RowDefinition Height="110*" />
</Grid> <RowDefinition Height="10*" />
</TabItem> </Grid.RowDefinitions>
<TabItem Header="{ll:Str 动画播放}"> <Label Grid.RowSpan="2" Grid.ColumnSpan="2" Background="{x:Null}" Content="{ll:Str '双击添加/移除播放列表内容'}" />
<Grid> <Label Grid.RowSpan="2" Grid.ColumnSpan="2" Margin="0,20,0,0" VerticalAlignment="Top"
<Grid.ColumnDefinitions> Background="{x:Null}" Content="{ll:Str '选择状态模式:'}" />
<ColumnDefinition Width="1*" /> <ComboBox x:Name="ComboxPlayMode" Grid.ColumnSpan="2" Margin="110,25,5,0" VerticalAlignment="Top"
<ColumnDefinition Width="1*" /> SelectedIndex="1">
</Grid.ColumnDefinitions> <ComboBoxItem Content="Happy" />
<Grid.RowDefinitions> <ComboBoxItem Content="Nomal" />
<RowDefinition Height="15*" /> <ComboBoxItem Content="PoorCondition" />
<RowDefinition Height="110*" /> <ComboBoxItem Content="Ill" />
<RowDefinition Height="10*" /> </ComboBox>
</Grid.RowDefinitions> <ListBox x:Name="GraphListPlayerBox" Grid.Row="1" Margin="5"
<Label MouseDoubleClick="GraphListPlayerBox_MouseDoubleClick" />
Grid.RowSpan="2" <ListBox x:Name="GraphListWillPlayBox" Grid.Row="1" Grid.Column="1" Margin="5"
Grid.ColumnSpan="2" MouseDoubleClick="GraphListWillPlayBox_MouseDoubleClick" />
Background="{x:Null}" <Button Grid.Row="2" Grid.ColumnSpan="2" Margin="5" Click="Play_Click" Content="开始播放" />
Content="{ll:Str '双击添加/移除播放列表内容'}" /> <Button Grid.Column="1" Margin="5" HorizontalAlignment="Right" VerticalAlignment="Top"
<Label Click="PlayADD_Click" Content="ADD" />
Grid.RowSpan="2" </Grid>
Grid.ColumnSpan="2" </TabItem>
Margin="0,20,0,0" <TabItem Header="{ll:Str 显示逻辑}">
VerticalAlignment="Top" <Grid>
Background="{x:Null}" <Label Background="{x:Null}" Content="{ll:Str 双击运行显示效果}" />
Content="{ll:Str '选择状态模式:'}" /> <Label x:Name="LabelSuccess" HorizontalAlignment="Right" Background="{x:Null}" Content="" />
<ComboBox <ListBox x:Name="DisplayListBox" Margin="0,30,0,0" MouseDoubleClick="DisplayListBox_MouseDoubleClick">
x:Name="ComboxPlayMode" <ListBoxItem Content="DisplayNomal" />
Grid.ColumnSpan="2" <ListBoxItem Content="DisplayTouchHead" />
Margin="110,25,5,0" <ListBoxItem Content="DisplayTouchBody" />
VerticalAlignment="Top" <ListBoxItem Content="DisplayIdel" />
SelectedIndex="1"> <ListBoxItem Content="DisplayIdel_StateONE" />
<ComboBoxItem Content="Happy" /> <ListBoxItem Content="DisplaySleep" />
<ComboBoxItem Content="Nomal" /> <ListBoxItem Content="DisplayRaised" />
<ComboBoxItem Content="PoorCondition" /> <ListBoxItem Content="DisplayMove" />
<ComboBoxItem Content="Ill" /> <ListBoxItem Content="DisplayToNomal" />
</ComboBox> </ListBox>
<ListBox </Grid>
x:Name="GraphListPlayerBox" </TabItem>
Grid.Row="1" <TabItem Header="{ll:Str 说话}">
Margin="5" <Grid>
MouseDoubleClick="GraphListPlayerBox_MouseDoubleClick" /> <Label Background="{x:Null}" Content="{ll:Str '输入要说的话,按说话键发送'}" />
<ListBox <Label Margin="0,20,0,0" VerticalAlignment="Top" Background="{x:Null}" Content="{ll:Str '选择说话类型:'}" />
x:Name="GraphListWillPlayBox" <ComboBox x:Name="CombSay" Margin="110,26,5,0" VerticalAlignment="Top" />
Grid.Row="1" <TextBox x:Name="SayTextBox" Height="200" Margin="5,54,5,0" VerticalAlignment="Top"
Grid.Column="1" VerticalContentAlignment="Top" pu:TextBoxHelper.Watermark="{ll:Str 在这里输入要说话的内容}"
Margin="5" AcceptsReturn="True" TextWrapping="Wrap" />
MouseDoubleClick="GraphListWillPlayBox_MouseDoubleClick" /> <Button VerticalAlignment="Bottom" Click="Say_Click" Content="{ll:Str 说话}" FontSize="24" />
<Button </Grid>
Grid.Row="2" </TabItem>
Grid.ColumnSpan="2" <TabItem Header="{ll:Str 距离查看器}">
Margin="5" <Grid>
Click="Play_Click" <Grid.RowDefinitions>
Content="开始播放" /> <RowDefinition />
<Button <RowDefinition />
Grid.Column="1" </Grid.RowDefinitions>
Margin="5" <Grid>
HorizontalAlignment="Right" <CheckBox Margin="10,5,5,5" HorizontalAlignment="Left" VerticalAlignment="Top"
VerticalAlignment="Top" Checked="CheckBox_Checked" Content="{ll:Str 启动距离查看器}" Unchecked="CheckBox_Unchecked" />
Click="PlayADD_Click" <TextBlock Margin="10,24,0,0" FontSize="24">
Content="ADD" />
</Grid>
</TabItem>
<TabItem Header="{ll:Str 显示逻辑}">
<Grid>
<Label Background="{x:Null}" Content="{ll:Str 双击运行显示效果}" />
<Label
x:Name="LabelSuccess"
HorizontalAlignment="Right"
Background="{x:Null}"
Content="" />
<ListBox
x:Name="DisplayListBox"
Margin="0,30,0,0"
MouseDoubleClick="DisplayListBox_MouseDoubleClick">
<ListBoxItem Content="DisplayNomal" />
<ListBoxItem Content="DisplayTouchHead" />
<ListBoxItem Content="DisplayTouchBody" />
<ListBoxItem Content="DisplayIdel" />
<ListBoxItem Content="DisplayIdel_StateONE" />
<ListBoxItem Content="DisplaySleep" />
<ListBoxItem Content="DisplayRaised" />
<ListBoxItem Content="DisplayMove" />
<ListBoxItem Content="DisplayToNomal" />
</ListBox>
</Grid>
</TabItem>
<TabItem Header="{ll:Str 说话}">
<Grid>
<Label Background="{x:Null}" Content="{ll:Str '输入要说的话,按说话键发送'}" />
<Label
Margin="0,20,0,0"
VerticalAlignment="Top"
Background="{x:Null}"
Content="{ll:Str '选择说话类型:'}" />
<ComboBox
x:Name="CombSay"
Margin="110,26,5,0"
VerticalAlignment="Top" />
<TextBox
x:Name="SayTextBox"
Height="200"
Margin="5,54,5,0"
VerticalAlignment="Top"
VerticalContentAlignment="Top"
pu:TextBoxHelper.Watermark="{ll:Str 在这里输入要说话的内容}"
AcceptsReturn="True"
TextWrapping="Wrap" />
<Button
VerticalAlignment="Bottom"
Click="Say_Click"
Content="{ll:Str 说话}"
FontSize="24" />
</Grid>
</TabItem>
<TabItem Header="{ll:Str 距离查看器}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid>
<CheckBox
Margin="10,5,5,5"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Checked="CheckBox_Checked"
Content="{ll:Str 启动距离查看器}"
Unchecked="CheckBox_Unchecked" />
<TextBlock Margin="10,24,0,0" FontSize="24">
<Run Text="{ll:Str '屏幕边缘距离'}" /><LineBreak /> <Run Text="{ll:Str '屏幕边缘距离'}" /><LineBreak />
<Run Text="{ll:Str 左侧}" /> <Run Text="{ll:Str 左侧}" />
:<Run x:Name="RLeft" /><LineBreak /> :<Run x:Name="RLeft" /><LineBreak />
@ -179,44 +100,28 @@
:<Run x:Name="RTop" /><LineBreak /> :<Run x:Name="RTop" /><LineBreak />
<Run Text="{ll:Str 下侧}" /> <Run Text="{ll:Str 下侧}" />
:<Run x:Name="RDown" /><LineBreak /> :<Run x:Name="RDown" /><LineBreak />
</TextBlock> </TextBlock>
</Grid> </Grid>
<Grid Grid.Row="1"> <Grid Grid.Row="1">
<StackPanel> <StackPanel>
<Button <Button x:Name="Button_MoveToLeft" Click="Button_MoveToLeft_Click" Content="向左移动" />
x:Name="Button_MoveToLeft" <Button x:Name="Button_MoveToUp" Click="Button_MoveToUp_Click" Content="向上移动" />
Click="Button_MoveToLeft_Click" <Button x:Name="Button_MoveToRight" Click="Button_MoveToRight_Click" Content="向右移动" />
Content="向左移动" /> <Button x:Name="Button_MoveToButton" Click="Button_MoveToButton_Click" Content="向下移动" />
<Button </StackPanel>
x:Name="Button_MoveToUp" </Grid>
Click="Button_MoveToUp_Click" </Grid>
Content="向上移动" /> </TabItem>
<Button <TabItem Header="{ll:Str 未翻译文档}">
x:Name="Button_MoveToRight" <Grid>
Click="Button_MoveToRight_Click" <Grid.RowDefinitions>
Content="向右移动" /> <RowDefinition Height="1*" />
<Button <RowDefinition Height="10*" />
x:Name="Button_MoveToButton" </Grid.RowDefinitions>
Click="Button_MoveToButton_Click" <Button Click="Output_No_Local" Content="{ll:Str 导出未翻译文档}" />
Content="向下移动" /> <TextBox x:Name="LocalTextBox" Grid.Row="1" AcceptsReturn="True" IsReadOnly="True"
</StackPanel> MouseDown="Local_SelectAll_Click" />
</Grid> </Grid>
</Grid> </TabItem>
</TabItem> </TabControl>
<TabItem Header="{ll:Str 未翻译文档}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="10*" />
</Grid.RowDefinitions>
<Button Click="Output_No_Local" Content="{ll:Str 导出未翻译文档}" />
<TextBox
x:Name="LocalTextBox"
Grid.Row="1"
AcceptsReturn="True"
IsReadOnly="True"
MouseDown="Local_SelectAll_Click" />
</Grid>
</TabItem>
</TabControl>
</Window> </Window>

View File

@ -23,6 +23,7 @@ namespace VPet_Simulator.Windows
public winConsole(MainWindow mw) public winConsole(MainWindow mw)
{ {
InitializeComponent(); InitializeComponent();
Title = "桌宠管理开发控制台".Translate() + ' ' + mw.PrefixSave;
this.mw = mw; this.mw = mw;
foreach (var v in mw.Core.Graph.GraphsList) foreach (var v in mw.Core.Graph.GraphsList)
{ {

View File

@ -6,7 +6,7 @@
xmlns:local="clr-namespace:VPet_Simulator.Windows" xmlns:local="clr-namespace:VPet_Simulator.Windows"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:pu="clr-namespace:Panuon.WPF.UI;assembly=Panuon.WPF.UI" xmlns:pu="clr-namespace:Panuon.WPF.UI;assembly=Panuon.WPF.UI"
xmlns:system="clr-namespace:System;assembly=mscorlib" Title="{ll:Str 设置}" xmlns:system="clr-namespace:System;assembly=mscorlib"
Width="{ll:Dbe SettingWidth, DefValue=500}" Height="550" Closing="WindowX_Closing" FontSize="16" Width="{ll:Dbe SettingWidth, DefValue=500}" Height="550" Closing="WindowX_Closing" FontSize="16"
Style="{DynamicResource BaseWindowXStyle}" Topmost="True" WindowStartupLocation="CenterScreen" mc:Ignorable="d"> Style="{DynamicResource BaseWindowXStyle}" Topmost="True" WindowStartupLocation="CenterScreen" mc:Ignorable="d">
<!--<pu:WindowX.Resources> <!--<pu:WindowX.Resources>

View File

@ -39,6 +39,9 @@ namespace VPet_Simulator.Windows
//Console.WriteLine(DateTime.Now.ToString("mm:ss.fff")); //Console.WriteLine(DateTime.Now.ToString("mm:ss.fff"));
////ImageWHY.Source = bit; ////ImageWHY.Source = bit;
//Console.WriteLine(DateTime.Now.ToString("mm:ss.fff")); //Console.WriteLine(DateTime.Now.ToString("mm:ss.fff"));
Title = "设置".Translate() + ' ' + mw.PrefixSave;
TopMostBox.IsChecked = mw.Set.TopMost; TopMostBox.IsChecked = mw.Set.TopMost;
if (mw.Set.IsBiggerScreen) if (mw.Set.IsBiggerScreen)
{ {

View File

@ -4,7 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:VPet_Simulator.Windows" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:VPet_Simulator.Windows"
xmlns:pu="clr-namespace:Panuon.WPF.UI;assembly=Panuon.WPF.UI" xmlns:pu="clr-namespace:Panuon.WPF.UI;assembly=Panuon.WPF.UI"
xmlns:system="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d" Title="{ll:Str 反馈中心}" xmlns:system="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d"
Style="{DynamicResource BaseWindowXStyle}" WindowStartupLocation="CenterScreen" Width="500" MinHeight="250" Style="{DynamicResource BaseWindowXStyle}" WindowStartupLocation="CenterScreen" Width="500" MinHeight="250"
Height="Auto" ResizeMode="NoResize" WindowState="Normal" Icon="../vpeticon.ico" SizeToContent="Height"> Height="Auto" ResizeMode="NoResize" WindowState="Normal" Icon="../vpeticon.ico" SizeToContent="Height">
<StackPanel x:Name="MainGrid" Margin="10,10,15,10" VerticalAlignment="Top"> <StackPanel x:Name="MainGrid" Margin="10,10,15,10" VerticalAlignment="Top">

View File

@ -22,6 +22,7 @@ namespace VPet_Simulator.Windows
{ {
InitializeComponent(); InitializeComponent();
mw = mainw; mw = mainw;
Title = "反馈中心".Translate() + ' ' + mw.PrefixSave;
save = mw.Core.Save.ToLine().ToString() + mw.Set.ToString(); save = mw.Core.Save.ToLine().ToString() + mw.Set.ToString();
if (errmsg != null) if (errmsg != null)
{ {