小编War*_*ung的帖子

如何正确使用android支持库

我正在通过专业Android 4应用程序开发工作.第4章修改待办事项列表应用程序以使用片段,但我正在尝试在Gingerbread设备上进行测试.书中提到使用支持库允许在较低版本的设备上使用Android v3或v4功能,但它没有得到很好的覆盖.

我遇到了一个问题:

    // Get references to the Fragments
    android.app.FragmentManager fm = getFragmentManager();
    ToDoListFragment    todoListFragment = (ToDoListFragment) fm.findFragmentById( R.id.ToDoListFragment );
Run Code Online (Sandbox Code Playgroud)

我在顶部有这些导入:import android.support.v4.app.FragmentManager; import android.support.v4.app.ListFragment;

但lint警告"ToDoListFragment todoListFragment =(ToDoListFragment)"行:无法从Fragment转换为ToDoListFragment

在我的ToDoListFragment类中,我有:

    import android.support.v4.app.ListFragment;

    public class ToDoListFragment extends ListFragment {
    }
Run Code Online (Sandbox Code Playgroud)

除了使用支持库的更改之外,这几乎是本书的逐字逐句.

我不清楚如何使用v4支持库使这段代码正常工作.如果这还不够,我会提前道歉.我还在学习这个,而且我比C/C++更熟悉Java.如果我不使用支持库,代码构建得很好并将在Ice Cream Sandwich设备上运行,但我也希望它能够在更低级别的设备上运行.

android android-support-library

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

使用DPI使WinForms正确扩展的问题

我遇到了让WinForms应用程序在高DPI设置下正确显示的问题.我检查了各种网站,WinForms都有正确的AutoScaleMode.我已经尝试将它设置为DPI和Font.但是,当使用高DPI设置(例如125%)时,表格总是会在底部附近被切断.

我添加了一些代码来检查,如果我将AutoScaleMode设置为DPI,当表单加载时,我看到表单加载时AutoScaleDimensions为120,120,而CurrentAutoScaleDimensions也为120,120.在Form.designer.cs文件中,有一行将AutoScaleDimension设置为96,96.

如果我将AutoScaleMode设置为Font,那么我可以在设计器中看到AutoScaleDimension被正确设置为新的System.Drawing.SizeF(6F,13F),但是当表单加载时,AutoScaleDimension和CurrentAutoScaleDimension都设置为8F,16F.

这个应用程序混合了一些WPF和WinForms,WPF屏幕首先出现.因此,基于混合WinForms和WPF应用程序中的.Net 3.5中的DPI Scaling,我尝试为应用程序设置TextFormattingMode,并为首先显示的WPF屏幕设置"显示",但它没有任何区别.

坦率地说,我不知道造成这种情况的原因.我想我可以通过在运行时检测DPI来添加代码来以编程方式调整大小,但我不应该这样做.AutoScaleMode(和相关的)属性应该使这相当自动化.那么我还应该检查哪些可能会导致这个问题呢?

.net c# wpf dpi winforms

8
推荐指数
2
解决办法
3510
查看次数

如何将 WPF 支持添加到 .NET 5 Winforms 项目

我正在将旧的 .NET Framework 4 WinForms 应用程序转换为 .NET 5。在这种情况下,最简单的方法是重新创建项目,该项目大部分都有效。但是,我有一种方法可以从内存流中解码 JPG 图像:

            // Look for JFIF header
            MemoryStream memStream = new MemoryStream( rawData );
            JpegBitmapDecoder decoder = new JpegBitmapDecoder( memStream,
                BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default );
            BitmapSource bmpSource = decoder.Frames[0];
            Bitmap bitmap = new Bitmap( bmpSource.PixelWidth, bmpSource.PixelHeight,
                PixelFormat.Format24bppRgb );
Run Code Online (Sandbox Code Playgroud)

这失败是因为 VS 2019 抱怨“使用 System.Windows.Media.Imaging”导致错误,并且 JpegBitmapDecoder 显示为红色波浪线。如果我将鼠标悬停在 JpegBitmapDecoder 上,我将获得“使用 System.Windows.Media.Imaging; from PresentationCode”的选项。

但是,选择它会导致 VS 2019 卡在“执行建议操作”上,尝试添加 using.

该项目针对 .NET 5,我添加了 Microsoft.Windows.Compatibility NuGet 包,那么我做错了什么?或者,如何访问 JpegBitmapDecoder?

c# wpf winforms .net-5

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

标签 统计

c# ×2

winforms ×2

wpf ×2

.net ×1

.net-5 ×1

android ×1

android-support-library ×1

dpi ×1