Files
DevToolsAvalonia/常用工具集/Views/05其他/进制转换及ASCII转换.axaml.cs
2025-08-26 08:37:44 +08:00

346 lines
9.7 KiB
C#

using Avalonia.Controls;
using Avalonia.Controls.Notifications;
using Avalonia.Input;
using System;
using .Base;
namespace ;
public partial class ASCII转换 : UserControl
{
public ASCII转换()
{
InitializeComponent();
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button1_Click(sender, e);
}
}
private void button1_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
string bin = textBox1.Text.Trim();
if (bin.Length == 0)
{
bin = "0";
}
//二进制转换十进制
int num = Convert.ToInt32(bin, 2);
//十进制转
string num8 = Convert.ToString(num, 8);
//十进制转16进制
string num16 = Convert.ToString(num, 16).ToUpper();
textBox1.Text = bin;
textBox2.Text = num8;
textBox3.Text = Convert.ToString(num);
textBox4.Text = num16;
}
catch (Exception ex)
{
GlobalValues.Error($"转换错误:{ex.Message}");
}
}
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button2_Click(sender, e);
}
}
private void button2_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
string num8 = textBox2.Text.Trim();
if (num8.Length == 0)
{
num8 = "0";
}
//二进制转换十进制
int num10 = Convert.ToInt32(num8, 8);
//十进制转
string num2 = Convert.ToString(num10, 2);
//十进制转16进制
string num16 = Convert.ToString(num10, 16).ToUpper();
textBox1.Text = num2;
textBox2.Text = num8;
textBox3.Text = Convert.ToString(num10);
textBox4.Text = num16;
}
catch (Exception ex)
{
GlobalValues.Error($"转换错误:{ex.Message}");
}
}
private void textBox3_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button3_Click(sender, e);
}
}
private void button3_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
string strNum10 = textBox3.Text.Trim();
if (strNum10.Length == 0)
{
strNum10 = "0";
}
//二进制转换十进制
int num10 = Convert.ToInt32(strNum10);
string num2 = Convert.ToString(num10, 2);
string num8 = Convert.ToString(num10, 8);
//十进制转16进制
string num16 = Convert.ToString(num10, 16).ToUpper();
textBox1.Text = num2;
textBox2.Text = num8;
textBox3.Text = Convert.ToString(num10);
textBox4.Text = num16;
}
catch (Exception ex)
{
GlobalValues.Error($"转换错误:{ex.Message}");
}
}
private void textBox4_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button4_Click(sender, e);
}
}
private void button4_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
string strNum16 = textBox4.Text.Trim();
if (strNum16.Length == 0)
{
strNum16 = "0";
}
//二进制转换十进制
int num10 = Convert.ToInt32(strNum16, 16);
string num2 = Convert.ToString(num10, 2);
string num8 = Convert.ToString(num10, 8);
//十进制转16进制
string num16 = Convert.ToString(num10, 16).ToUpper();
textBox1.Text = num2;
textBox2.Text = num8;
textBox3.Text = Convert.ToString(num10);
textBox4.Text = num16;
}
catch (Exception ex)
{
GlobalValues.Error($"转换错误:{ex.Message}");
}
}
private void textBox5_KeyDown(object sender, Avalonia.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button5_Click(sender, e);
}
}
private void textBox6_KeyDown(object sender, Avalonia.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button5_Click(sender, e);
}
}
private void textBox7_KeyDown(object sender, Avalonia.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button5_Click(sender, e);
}
}
private void button5_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
string r = textBox5.Text.Trim();
if (r.Length == 0)
{
textBox5.Text = "0";
}
int intR = Convert.ToInt32(r);
if (intR > 255)
{
intR = 255;
textBox5.Text = "255";
}
string g = textBox6.Text.Trim();
if (g.Length == 0)
{
textBox6.Text = "0";
}
int intG = Convert.ToInt32(g);
if (intG > 255)
{
intG = 255;
textBox6.Text = "255";
}
string b = textBox7.Text.Trim();
if (b.Length == 0)
{
textBox7.Text = "0";
}
int intB = Convert.ToInt32(b);
if (intB > 255)
{
intB = 255;
textBox7.Text = "255";
}
string r16 = Convert.ToString(intR, 16).ToUpper().PadLeft(2, '0');
string g16 = Convert.ToString(intG, 16).ToUpper().PadLeft(2, '0');
string b16 = Convert.ToString(intB, 16).ToUpper().PadLeft(2, '0');
textBox8.Text = r16 + g16 + b16;
}
catch (Exception ex)
{
GlobalValues.Error($"转换错误:{ex.Message}");
}
}
private void textBox8_KeyDown(object sender, Avalonia.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button6_Click(sender, e);
}
}
private void button6_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
string value = textBox8.Text.Trim().ToUpper();
if (value.Length == 0)
{
value = "000000";
}
else if (value.Length > 6)
{
value = value.Substring(0, 6);
}
else
{
value = value.PadLeft(6, '0');
}
textBox8.Text = value;
string strR = value.Substring(0, 2);
string strG = value.Substring(2, 2);
string strB = value.Substring(4, 2);
int intR = Convert.ToInt32(strR, 16);
int intG = Convert.ToInt32(strG, 16);
int intB = Convert.ToInt32(strB, 16);
textBox5.Text = Convert.ToString(intR);
textBox6.Text = Convert.ToString(intG);
textBox7.Text = Convert.ToString(intB);
}
catch (Exception ex)
{
GlobalValues.Error($"转换错误:{ex.Message}");
}
}
private void textBox9_KeyDown(object sender, Avalonia.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button7_Click(sender, e);
}
}
private void button7_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
string strChar = textBox9.Text.Trim();
if (strChar.Length == 0)
{
strChar = "0";
}
textBox9.Text = strChar;
char c = strChar.ToCharArray()[0];
int intChar = c;
textBox10.Text = Convert.ToString(intChar);
textBox11.Text = Convert.ToString(intChar, 16);
}
catch (Exception ex)
{
GlobalValues.Error($"转换错误:{ex.Message}");
}
}
private void textBox10_KeyDown(object sender, Avalonia.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button8_Click(sender, e);
}
}
private void button8_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
string asc2 = textBox10.Text.Trim();
if (asc2.Length == 0)
{
asc2 = "48";
}
textBox10.Text = asc2;
int num = Convert.ToInt32(asc2);
char c = (char)num;
textBox9.Text = Convert.ToString(c);
textBox11.Text = Convert.ToString(num, 16);
}
catch (Exception ex)
{
GlobalValues.Error($"转换错误:{ex.Message}");
}
}
private void textBox11_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
button9_Click(sender, e);
}
}
private void button9_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
string asc16 = textBox11.Text.Trim();
if (asc16.Length == 0)
{
asc16 = "30";
}
textBox11.Text = asc16;
int num = Convert.ToInt32(asc16, 16);
char c = (char)num;
textBox9.Text = Convert.ToString(c);
textBox10.Text = Convert.ToString(num);
}
catch (Exception ex)
{
GlobalValues.Error($"转换错误:{ex.Message}");
}
}
}