为什么我的设计只适用于小屏幕尺寸?
Why is my design works fine only with small screen sizes?
我已经完全按照这个很棒的教程使用 FontAwsome.Sharp
设计现代 UI
我有两个问题,首先在表单设计模式下,一切都如预期的那样,但在调试时,控件被遗漏了,我不知道为什么!
这是我在设计模式下的表单:
这是它在调试中的样子:
[][]
表单有两个停靠面板和一些 IconButtons
,这是当前属性:
panelMenu Panel
Dock Left
Size 231, 687
IconButtons
Size 231, 60
Dock Top
FlatStyle Flat
ImageAlign MiddleLeft
TextAlign MiddleLeft
TextImageRelation ImageBeforeText
第二期,就算设计对了这个方法:
ActivateButton(object senderBtn, Color color)
根本不做任何事情它应该更改 IconButtons
的 BackColor
,移动图标并显示按钮的侧面小边框。
我将代码与源代码进行了比较,没有问题
public partial class MainForm : Form
{
// Fields
private IconButton currentBtn;
private Panel leftBorderBtn;
private Form currentChildForm;
public MainForm()
{
InitializeComponent();
leftBorderBtn = new Panel();
leftBorderBtn.Size = new Size(7, 60);
panelMenu.Controls.Add(leftBorderBtn);
}
private struct RGBColors
{
public static Color color1 = Color.FromArgb(172, 126, 241);
public static Color color2 = Color.FromArgb(249, 118, 176);
public static Color color3 = Color.FromArgb(253, 138, 114);
public static Color color4 = Color.FromArgb(95, 77, 221);
public static Color color5 = Color.FromArgb(249, 88, 155);
public static Color color6 = Color.FromArgb(24, 161, 251);
}
// Methods
private void ActivateButton(object senderBtn, Color color)
{
if (currentBtn != null)
{
DisableButton();
currentBtn = (IconButton)senderBtn;
currentBtn.BackColor = Color.FromArgb(37,36,81);
currentBtn.ForeColor = color;
currentBtn.TextAlign = ContentAlignment.MiddleCenter;
currentBtn.IconColor = color;
currentBtn.TextImageRelation = TextImageRelation.TextBeforeImage;
currentBtn.ImageAlign = ContentAlignment.MiddleRight;
// Left Border Button
leftBorderBtn.BackColor = color;
leftBorderBtn.Location = new Point(0, currentBtn.Location.Y);
leftBorderBtn.Visible = true;
leftBorderBtn.BringToFront();
}
}
// Disable Button
private void DisableButton()
{
if (currentBtn != null)
{
currentBtn.BackColor = Color.FromArgb(31, 30, 68);
currentBtn.ForeColor = Color.Gainsboro;
currentBtn.TextAlign = ContentAlignment.MiddleLeft;
currentBtn.IconColor = Color.Gainsboro;
currentBtn.TextImageRelation = TextImageRelation.ImageBeforeText;
currentBtn.ImageAlign = ContentAlignment.MiddleLeft;
}
}
private void btnItems_Click(object sender, EventArgs e)
{
ActivateButton(sender, RGBColors.color1);
}
我正在使用 visual studio 2015。
很抱歉post,但非常感谢您的帮助。
编辑#1:我已经构建了表格并在笔记本电脑上使用了它,设计还不错问题出在我当前的 43 英寸屏幕上,有没有适合所有屏幕的方法?
我不太清楚,但看起来你的屏幕比例是 125% 而不是 100%。
这是可能的?我在用户电脑上制作的应用程序也遇到了类似的问题,就是因为这个原因。
我已经完全按照这个很棒的教程使用 FontAwsome.Sharp
我有两个问题,首先在表单设计模式下,一切都如预期的那样,但在调试时,控件被遗漏了,我不知道为什么!
这是我在设计模式下的表单:
这是它在调试中的样子:
[
表单有两个停靠面板和一些 IconButtons
,这是当前属性:
panelMenu
Panel
Dock Left
Size 231, 687
IconButtons
Size 231, 60
Dock Top
FlatStyle Flat
ImageAlign MiddleLeft
TextAlign MiddleLeft
TextImageRelation ImageBeforeText
第二期,就算设计对了这个方法:
ActivateButton(object senderBtn, Color color)
根本不做任何事情它应该更改 IconButtons
的 BackColor
,移动图标并显示按钮的侧面小边框。
我将代码与源代码进行了比较,没有问题
public partial class MainForm : Form
{
// Fields
private IconButton currentBtn;
private Panel leftBorderBtn;
private Form currentChildForm;
public MainForm()
{
InitializeComponent();
leftBorderBtn = new Panel();
leftBorderBtn.Size = new Size(7, 60);
panelMenu.Controls.Add(leftBorderBtn);
}
private struct RGBColors
{
public static Color color1 = Color.FromArgb(172, 126, 241);
public static Color color2 = Color.FromArgb(249, 118, 176);
public static Color color3 = Color.FromArgb(253, 138, 114);
public static Color color4 = Color.FromArgb(95, 77, 221);
public static Color color5 = Color.FromArgb(249, 88, 155);
public static Color color6 = Color.FromArgb(24, 161, 251);
}
// Methods
private void ActivateButton(object senderBtn, Color color)
{
if (currentBtn != null)
{
DisableButton();
currentBtn = (IconButton)senderBtn;
currentBtn.BackColor = Color.FromArgb(37,36,81);
currentBtn.ForeColor = color;
currentBtn.TextAlign = ContentAlignment.MiddleCenter;
currentBtn.IconColor = color;
currentBtn.TextImageRelation = TextImageRelation.TextBeforeImage;
currentBtn.ImageAlign = ContentAlignment.MiddleRight;
// Left Border Button
leftBorderBtn.BackColor = color;
leftBorderBtn.Location = new Point(0, currentBtn.Location.Y);
leftBorderBtn.Visible = true;
leftBorderBtn.BringToFront();
}
}
// Disable Button
private void DisableButton()
{
if (currentBtn != null)
{
currentBtn.BackColor = Color.FromArgb(31, 30, 68);
currentBtn.ForeColor = Color.Gainsboro;
currentBtn.TextAlign = ContentAlignment.MiddleLeft;
currentBtn.IconColor = Color.Gainsboro;
currentBtn.TextImageRelation = TextImageRelation.ImageBeforeText;
currentBtn.ImageAlign = ContentAlignment.MiddleLeft;
}
}
private void btnItems_Click(object sender, EventArgs e)
{
ActivateButton(sender, RGBColors.color1);
}
我正在使用 visual studio 2015。 很抱歉post,但非常感谢您的帮助。
编辑#1:我已经构建了表格并在笔记本电脑上使用了它,设计还不错问题出在我当前的 43 英寸屏幕上,有没有适合所有屏幕的方法?
我不太清楚,但看起来你的屏幕比例是 125% 而不是 100%。 这是可能的?我在用户电脑上制作的应用程序也遇到了类似的问题,就是因为这个原因。