小编Tan*_*r.R的帖子

如何在Android中添加第二个活动

嘿大家!我试图在我的android项目中添加第二个活动,但我不确定如何准确添加活动文件?

我在这里添加了一个类"Name/Scr/PackageName/MyClassHere",但我不确定是否正确的做或放置它,因为也没有XML文件.

我使用此代码打开一个新的屏幕,http://learnandroid.blogspot.com/2008/01/opening-new-screen-in-android.html我得到2个错误.1在运行时这一行: Intent i = new Intent(Coinparison.this, ResultsScreen.class); 它说它无法找到我的活动.

而这里的另一个错误setContentView(R.layout.ResultsScreen);是"ResultsScreen"无法解决.

不确定什么是错的,但任何帮助都很棒!:)

android android-intent android-activity

17
推荐指数
2
解决办法
6万
查看次数

处理 MenuItem 单击事件的最佳方法?

我想知道处理 MenuItems 的 30 个左右的 Click 事件的最佳方法是什么?

我的第一个想法显然是为每个 MenuItem 创建一个事件侦听器,如下所示:

XAML:

<Menu Name="MainMenu" IsMainMenu="True" Height="25">
        <MenuItem Header="_File" >
            <MenuItem Name="New" Header="_New" Click="MenuItem_NewClick" />
            <MenuItem Name="Open" Header="_Open" Click="MenuItem_OpenClick" />
            <MenuItem Name="Save" Header="_Save" Click="MenuItem_SaveClick" />
        </MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)

C# 1:

private void MenuItem_NewClick(object sender, RoutedEventArgs e)
{           
    //Do work...
}
private void MenuItem_OpenClick(object sender, RoutedEventArgs e)
{
    //Do work...
}
private void MenuItem_SaveClick(object sender, RoutedEventArgs e)
{
    //Do work...
}
Run Code Online (Sandbox Code Playgroud)

但这似乎很混乱,尤其是对于不需要太多代码(如复制或粘贴)的 MenuItem。

我可以改为使用一个事件侦听器并使用 if/case 来检查 MenuItem 并消除所有额外的事件侦听器,如下所示:

C# 2:

private void …
Run Code Online (Sandbox Code Playgroud)

c# wpf menuitem

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

覆盖标签OnPaint?

我正在尝试使用FillPath覆盖我自己的自定义控件中的标签的OnPaint方法.

这是我的控件代码:

public partial class GlassLabel : Label
{
    public GlassLabel()
    {
        InitializeComponent();
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        Graphics g = this.CreateGraphics();
        GraphicsPath path = new GraphicsPath();
        SolidBrush br = new SolidBrush(Color.Black);
        path.AddString("LLOOOOLL", new FontFamily("Microsoft Sans Serif"), (int)FontStyle.Regular, 12, new Point(55, 55), StringFormat.GenericDefault);
        g.SmoothingMode = SmoothingMode.HighQuality;
        g.FillPath(br, path);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,标签的文本是相同的,它不会使用FillPath绘制.

我试图覆盖标签的原因是我想在Aero玻璃上使用它,这需要FillPath.如果我可以将图形(FillPath)转换为对象以便我可以将事件附加到它,我也想了解相关信息.

谢谢.

刚试过:

e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
        e.Graphics.FillPath(br, path);
Run Code Online (Sandbox Code Playgroud)

没工作.

c# label system.drawing custom-controls

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