我正在使用Xamarin表单进行应用程序,但是我在将布局粘贴到设备底部时遇到了一些麻烦.我认为AbsoluteLayout会起作用,但我无法理解它是如何工作的.所以我创建了一个RelativeLayout,我填充了我想要填充的元素,但现在我似乎无法让它始终坚持设备的底部.
下面是一个屏幕截图,可以让事情更加清晰.我有一个stacklayout,我用headerlayout和contentlayout填充.但是,如果我只是将footerlayout添加到stacklayout,它将不会粘贴到页面的底部,而是(逻辑上)紧跟在前一个孩子的后面.现在我认为Absolutelayout可以做到这一点,但我似乎无法掌握它的功能和Layoutflags和界限.有人可以帮帮我吗?
我遇到了一个小问题,我似乎无法找到答案.我有一个应用程序,它获取某些进程并获取它的窗口大小.唯一的问题是需要一定百分比的实际屏幕尺寸(用户看到).
我想制作一个应用程序的屏幕截图,但是如果我使用窗口的Rect我得到的屏幕比它小,因为resolotion是125%.这意味着我输出的原始分辨率(1280 * 800
)小于我的屏幕分辨率(1600 * 1000
)你可以理解这个小的打嗝让我的程序不可靠.我的问题是如何解决这个问题?
我创建了一个我设置DPIAware
为true 的清单.我还在调试中禁用了Visual Studio主机.但它没有帮助.我仍然得到相同的值和相同的问题.这是我的实际屏幕截图的代码片段:
RECT Rect = new RECT();
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName("Process");
ShowWindow(p[0].MainWindowHandle, 9);
SetForegroundWindow(p[0].MainWindowHandle);
if (GetWindowRect(p[0].MainWindowHandle, ref Rect))
{
var bmp = new Bitmap(Rect.Width, Rect.Height);
var graphics = Graphics.FromImage(bmp);
graphics.CopyFromScreen(Rect.Left, Rect.Top, 0, 0, new Size(Rect.Width, Rect.Height), CopyPixelOperation.SourceCopy);
bmp.Save(@"C:\Screenshots\temp1.png");
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个屏幕截图1280 * 800
,不足以涵盖整个过程,这是1600 * 1000
.一切都因为屏幕坐标不对而关闭.如果我将所有内容乘以1,25就可以了,但这不是解决方案,因为我不知道其他PC上的DPI设置是什么.
我将在其中发布包含RECT的完整代码.
RECT Rect = new RECT();
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName("LoLPatcherUx");
ShowWindow(p[0].MainWindowHandle, 9);
SetForegroundWindow(p[0].MainWindowHandle);
if (GetWindowRect(p[0].MainWindowHandle, ref Rect))
{ …
Run Code Online (Sandbox Code Playgroud) 在此主题上找不到任何好的答案,因此也许有人可以帮我。我正在制作一个小型个人程序,希望将某个应用程序放在前台。它已经可以工作,但是有一个小问题。当过程最小化时,我的代码不起作用。该过程不会像未最小化时那样在前台显示。
这是代码片段:
public partial class Form1 : Form
{
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process[] p
= System.Diagnostics.Process.GetProcessesByName("Client");
if (p.Length > 0)
{
SetForegroundWindow(p[0].MainWindowHandle);
}
else
{
MessageBox.Show("Window Not Found!");
}
}
}
Run Code Online (Sandbox Code Playgroud) 我的 OWIN selfhost 服务器出现一些问题。我正在尝试使其可以通过我的本地网络进行访问。这意味着主机的 IP 地址将用于连接到服务器。糟糕的是,我收到了错误的请求,主机名无效。
我做了一些谷歌搜索,找到了有关启动选项的可能解决方案:
StartOptions options = new StartOptions();
options.Urls.Add("http://localhost:9095");
options.Urls.Add("http://127.0.0.1:9095");
options.Urls.Add(string.Format("http://{0}:9095", Environment.MachineName));
Run Code Online (Sandbox Code Playgroud)
现在我尝试实现它却出现错误:
static void Main()
{
string baseAddress = "http://localhost:4004/";
/*Render application
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrontVorm());
*/
// Start OWIN host
StartOptions options = new StartOptions();
options.Urls.Add("http://localhost:4004");
options.Urls.Add("http://127.0.0.1:4004");
options.Urls.Add(string.Format("http://{0}:4004", Environment.MachineName));
using (WebApp.Start<Program>(options))
{
// Create HttpCient and make a request to api/values
HttpClient client = new HttpClient();
}
}
Run Code Online (Sandbox Code Playgroud)
我最初使用 baseURL 来完成此操作,然后使用我的启动程序 (url : baseAdress) 来完成此操作。但现在我收到错误并且我的服务器停止运行。
{"The following errors occurred while attempting to load the …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 pagespeed 优化我的网站,我得到了使用 JPEG2000 而不是普通 JPG 的建议。所以我转换了所有图像,但是当我更改图像时,它不会显示在我的笔记本电脑上。所以我检查了“caniuse”,现在我看到这个扩展只支持手机(android和ios)
那么如何在我的网站中实现这一点呢?如果设备是手机,是否需要使用javascript将扩展名更改为jpf?
我使用基于屏幕大小的图片和 srcset,但是如果我将我的笔记本电脑上的屏幕拖得更小,这将不起作用。有谁知道如何使用这个新的 JPEG2000?