我正在开发一个C#
应用程序,我遇到了这个问题:
现在,当我完成我的应用程序时,我尝试从不同的显示器使用它,我有重新调整大小的问题。我有组合框,列表视图,标签,按钮等。我尝试将它们向下,向上,向左等锚定。我通过将所有内容锚定在左边来获得最佳行为,因为我并不真正关心如何使其更大比起它,它看起来很好,即使在23'监视器,问题是当我尝试缩小低于它的原始大小时:
表格开始缩小,滚动出现,所以我可以使用滚动看到所有表格(左 - 右,因为问题在于我的情况下的宽度)而且我不怎么想喜欢它的工作
我希望出现的下一件事,当缩小它的原始尺寸时,表格中的每个项目都会变小,以便一切都适合
自动缩放和自动调整对我没用,也许我没有好好使用它。
锚定顶部,左侧,右侧,底部的功能,我将它们放在哪里可以很好地生长,但是当我收缩时,一切都在其他项目之上(它们叠加)
< / LI>所以,大家好,你有什么想法或解决方案,当我调整大小时,我怎么能得到漂亮的缩放?
答案 0 :(得分:0)
WPF示例:
注意:代码未经过测试。它是如何在WPF应用程序中实现响应式UI的原型。
WPF应用程序包含一个MainWindow。这个mainwidows包含Pages,每个页面都是一个Screen。
namespace Example
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.SizeChanged += window_SizeChanged;
}
LoginScreen screen1= new LoginScreen)();
private void Window_KeyDown(object sender, KeyEventArgs e)
{
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
mainFrame.addPage(screen1);
}
private void setAppConfiguration()
{
}
private void window_SizeChanged(object sender, SizeChangedEventArgs e)
{
//Gets called when even windows size got changed. On each trigger we are calling resize() on that respective screen.
screen1.resize();
}
}
}
<Window x:Class="Example.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:gif="http://wpfanimatedgif.codeplex.com"
xmlns:toastinet="clr-namespace:ToastinetWPF;assembly=ToastinetWPF"
Title="IGNITOR" Height="350" Width="525" Loaded="Window_Loaded"
Name="window"
WindowState="Maximized">
<Grid>
<Grid Name="maingrid" >
<Grid Name="frameGrid">
<Frame Name="mainFrame" />
</Grid>
</Grid>
</Grid>
</Window>
namespace Example.Screens
{
/// <summary>
/// Interaction logic for LoginPage.xaml
/// </summary>
public partial class LoginScreen : Page
{
int count =0;
public LoginScreen()
{
InitializeComponent();
}
public void resizePage()
{
//Put all yout UI Logic here on resize..
errorlabel.Content = count + "";
count++;
}
}
}
<src:Page x:Class="Example.Screens"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:src="clr-namespace:Example.Screens"
mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="1200" Title="LoginPage">
<Grid>
<Label Name="errorlabel" Content="Example"/>
</Grid>
</src:Page>
答案 1 :(得分:0)
问题解决了,应用程序并不是那么大,但是我试过的显示器已经很老了并且裁剪了图片,我试着从一台新笔记本电脑上试了一下它没关系,所以我不会如果我不在每种类型的显示器上工作(当上面的陈旧时),请小心。