- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想知道是否可以在紧凑的框架上创建漂亮的表单效果。
我的计划是,当用户在主窗体上选择图像时,它会以新窗体打开,这目前是可行的。我现在要做的是制作包含全尺寸图片的表单,以在大约 4 像素高处从屏幕边缘(左侧或右侧)加载,然后滑入 View 。一旦表单完全显示在屏幕上,然后展开高度,直到它达到屏幕的最大值。
关闭时,我想将高度降低回 4 像素高,并在处理表单之前再次滑出边缘。
我在实例化表单时尝试了下面的代码,无论 dp.Width == 240,dp.Top 属性始终为 0
DisplayPicture dp = new DisplayPicture(ImageUrl);
dp.WindowState = FormWindowState.Normal;
dp.Left = dp.Width * -1;
dp.Top = (dp.Height / 2) - 2;
dp.Height = 4;
dp.ShowDialog();
在 DisplayPicture 表单中,我也有以下内容来尝试移动表单,但由于它没有设置 Top 属性,因此这段代码并不重要。
void t_Tick(object sender, EventArgs e)
{
if (this.Left < 0)
this.Left += 5;
if (this.Left > -1)
{
this.Left = 0;
if (this.Height < pictureBox1.ClientRectangle.Height)
{
this.Height += 4;
this.Top -= 2;
}
if ((this.Left == 0) && (this.Top == 0))
t.Enabled = false;
}
}
如有任何帮助,我们将不胜感激!
TIA
一次拍摄
最佳答案
为此,从加载图像的 PictureBox 控件开始。将 Height 设置为 4,将 Width 设置为窗体的宽度,并且(非常重要)将 PictureBox 的 SizeMode 设置为 StretchImage。
接下来,通过将 Top 设置为 0 并将 Left 设置为 -Width,将 PictureBox 置于屏幕之外。在窗体上放置一个 Timer 控件,间隔为 100(或其他),并使其事件逐渐将 PictureBox 向右移动,直到其 Left 属性为 0。到达该点后,让定时器事件逐渐增加 Height 直到它达到表单的高度。
您可能不得不处理闪烁,但这应该让您入门。
更新:我刚刚更仔细地阅读了您的问题,并意识到您实际上想要将表单本身从屏幕外移动到全屏。如果您希望整个表单(包括顶部的标题栏)以这种方式进行动画处理,这是不可能的,但是您可以通过设置表单的 FormBorderStyle(或者我认为它在 Compact Framework 中称为 BorderStyle)来做到这一点无。在 BorderStyle 设置为 None 的情况下,更改 Height、Width、Top 和 Left 属性实际上会对窗体产生可见的影响(尽管窗体将是无边框的)。 这些属性在 Windows Mobile 中完全被忽略,这可能就是为什么您的代码似乎没有做任何事情的原因。
更新 2:这里是 my answer一个类似的 WM 问题,它可以帮助您使动画窗口看起来像一个真实的窗口。
关于c# - WM6 .Net 窗体效果 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012796/
对于一个科学实验,我写了一个turtle.py ,它会打开一个 800x480 的窗口并绘制一个缓慢增长的黑点。 turtle.py以 C:\Users\kaza>python C:\Users\ka
我开发了一个 swing 应用程序,但每次运行应用程序时都会打开一个新窗口。我希望如果一个窗口已经打开,则其他窗口不允许打开。 最佳答案 Here是一个 Java 单一应用实例的例子: A singl
有没有办法检测主进程中 Electron 的结构? process.platform 似乎也在 x64 机器上返回 win32,我没有在文档中找到任何获取架构的选项。 最佳答案 你试过 process
public short[] HanningWindow(short[] signal_in ,int pos ,int size) { for (int i= pos; i < pos+si
我有一个具有这些属性的 Electron 窗口: mainWindow = new BrowserWindow({ width: 800, height: 600, title: "Aqu
我有一个 Ubuntu 工作站,我正在尝试引导一个 Windows 节点。 Windows 节点在端口 2222 上打开了 ssh。我一直在关注 http://docs.opscode.com/plu
我是一名优秀的程序员,十分优秀!