小编Huu*_*b S的帖子

将Xamarin Forms中的布局粘贴到底部

我正在使用Xamarin表单进行应用程序,但是我在将布局粘贴到设备底部时遇到了一些麻烦.我认为AbsoluteLayout会起作用,但我无法理解它是如何工作的.所以我创建了一个RelativeLayout,我填充了我想要填充的元素,但现在我似乎无法让它始终坚持设备的底部.

下面是一个屏幕截图,可以让事情更加清晰.我有一个stacklayout,我用headerlayout和contentlayout填充.但是,如果我只是将footerlayout添加到stacklayout,它将不会粘贴到页面的底部,而是(逻辑上)紧跟在前一个孩子的后面.现在我认为Absolutelayout可以做到这一点,但我似乎无法掌握它的功能和Layoutflags和界限.有人可以帮帮我吗?

我的应用程序

c# layout absolutelayout xamarin.forms

42
推荐指数
3
解决办法
4万
查看次数

DPI识别和Rect

我遇到了一个小问题,我似乎无法找到答案.我有一个应用程序,它获取某些进程并获取它的窗口大小.唯一的问题是需要一定百分比的实际屏幕尺寸(用户看到).

我想制作一个应用程序的屏幕截图,但是如果我使用窗口的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设置是什么.

编辑3:

我将在其中发布包含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)

c# screenshot bitmap rect dpi-aware

5
推荐指数
1
解决办法
1877
查看次数

SetForegroundWindow不适用于最小化的过程

在此主题上找不到任何好的答案,因此也许有人可以帮我。我正在制作一个小型个人程序,希望将某个应用程序放在前台。它已经可以工作,但是有一个小问题。当过程最小化时,我的代码不起作用。该过程不会像未最小化时那样在前台显示。

这是代码片段:

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)

c# pinvoke winapi minimized

2
推荐指数
1
解决办法
4067
查看次数

OWIN 服务器中的错误响应、启动选项

我的 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)

c# asp.net-web-api owin

2
推荐指数
1
解决办法
2082
查看次数

网站上的 JPF,如何让它正常工作?

我正在尝试使用 pagespeed 优化我的网站,我得到了使用 JPEG2000 而不是普通 JPG 的建议。所以我转换了所有图像,但是当我更改图像时,它不会显示在我的笔记本电脑上。所以我检查了“caniuse”,现在我看到这个扩展只支持手机(android和ios)

那么如何在我的网站中实现这一点呢?如果设备是手机,是否需要使用javascript将扩展名更改为jpf?

我使用基于屏幕大小的图片和 srcset,但是如果我将我的笔记本电脑上的屏幕拖得更小,这将不起作用。有谁知道如何使用这个新的 JPEG2000?

html php jpeg

1
推荐指数
1
解决办法
3054
查看次数