Windows Ribbon for WinForms, 第 7 部分 – Spinner






4.38/5 (15投票s)
在本文中,我将介绍如何使用 Ribbon Spinner 控件。
这系列 CodeProject 文章基于我首先在我的 博客上发表的一系列帖子。
Spinner 控件
Spinner 控件是一个表示十进制值的控件(例如 double,但具有更高的精度)。 该控件由一个编辑框和两个按钮组成,用于递增和递减。 让我们用 1000 个字来试试吧
Spinner 属性
每个 Ribbon 控件都有定义其外观和行为方式的属性。 这里快速回顾一下 spinner 属性,分为逻辑组
Spinner 值相关属性
- 十进制值 – Spinner 的实际十进制值。
属性标识符:UI_PKEY_DecimalValue
- 增量 – 按下递增 / 递减按钮时的步长。
属性标识符:UI_PKEY_Increment
- 最大值 – 可以使用 spinner 控件设置的最大值。
属性标识符:UI_PKEY_MaxValue
- 最小值 - 可以使用 spinner 控件设置的最小值。
属性标识符:UI_PKEY_MinValue
注意:在 Ribbon 框架中使用十进制值时,您必须使用支持十进制值的 PropVariant
实现。 更多信息请访问:设置 PropVariant 上的十进制值。
Spinner 外观相关属性
- 小数位数 – 显示在小数点后的位数。
属性标识符:UI_PKEY_DecimalPlaces
- 格式字符串 – 值的单位。 在上图中,它是 “m”,表示米。
属性标识符:UI_PKEY_FormatString
- 代表字符串 – 表示 spinner 常用值的字符串。 这用于计算 spinner 的宽度,因此您应该在这里设置您预测的最长字符串。 请注意,它不必是实际值,也可以是:“
XXXXXXXX
”。
属性标识符:UI_PKEY_RepresentativeString
通用外观属性
- 快捷键 – Ribbon 框架中此命令的键盘快捷键(通过在 ribbon 应用程序中按 ALT 键查看)。
属性标识符:UI_PKEY_Keytip
- 标签 – 此命令的标签。 通常显示在附加控件旁边。
属性标识符:UI_PKEY_Label
- 工具提示标题 – 此命令的工具提示的标题。
属性标识符:UI_PKEY_TooltipTitle
- 工具提示描述 – 此命令的工具提示的描述。
属性标识符:UI_PKEY_TooltipDescription
- 已启用 – 指示此控件是否已启用的标志。
属性标识符:UI_PKEY_Enabled
图像属性
- 大图像 – 此命令的大图像。
属性标识符:UI_PKEY_LargeImage
- 小图像 – 此命令的小图像。
属性标识符:UI_PKEY_SmallImage
- 大高对比度图像 – 此命令的大高对比度图像。
属性标识符:UI_PKEY_LargeHighContrastImage
- 小高对比度图像 – 此命令的小高对比度图像。
属性标识符:UI_PKEY_SmallHighContrastImage
使用 Spinner – Ribbon 标记
像往常一样,应该定义一个命令
<Command Name="cmdSpinner"
Id="1018"
LabelTitle="My Spinner">
</Command>
views
部分也很简单
<Application.Views>
<Ribbon>
<Ribbon.Tabs>
<Tab>
<Group>
<Spinner CommandName="cmdSpinner" />
</Group>
</Tab>
</Ribbon.Tabs>
</Ribbon>
</Application.Views>
使用 Spinner – 后台代码
为了帮助我们操作 spinner,我创建了一个帮助程序类,它封装了与 ribbon 框架相关的所有工作。 要使用它,请创建一个 RibbonSpinner
实例,将 Ribbon
实例和 spinner 的命令 ID 传递给构造函数
private Ribbon _ribbon;
private RibbonSpinner _spinner;
public Form1()
{
InitializeComponent();
_ribbon = new Ribbon();
_spinner = new RibbonSpinner(_ribbon, (uint)RibbonMarkupCommands.cmdSpinner);
}
我们还需要将 IUICommandHandler.UpdateProperty
方法与我们在 spinner 类中的此方法的实现连接起来
public HRESULT UpdateProperty(uint commandId, ref PropertyKey key,
ref PropVariant currentValue, ref PropVariant newValue)
{
if (commandId == (uint)RibbonMarkupCommands.cmdSpinner)
{
_spinner.UpdateProperty(ref key, ref currentValue, ref newValue);
}
return HRESULT.S_OK;
}
更新 (2009 年 11 月 18 日):Ribbon
类的更新版本为 IUICommandHandler
提供了实现,因此用户不再需要实现 Execute
和 UpdateProperty
方法。
现在,您可以通过在 _spinner
实例上设置属性来轻松地操作 spinner 属性,例如
private void InitSpinner()
{
_spinner.DecimalPlaces = 2;
_spinner.DecimalValue = 1.8M;
_spinner.TooltipTitle = "Height";
_spinner.TooltipDescription = "Enter height in meters.";
_spinner.MaxValue = 2.5M;
_spinner.MinValue = 0;
_spinner.Increment = 0.01M;
_spinner.FormatString = " m";
_spinner.RepresentativeString = "2.50 m";
_spinner.Label = "Height:";
}
我们从哪里可以得到它?
您可以在 Windows Ribbon for WinForms 的示例 “05-Spinner
” 下找到一个演示如何使用 spinner 控件的工作示例。
暂时就到这里,
Arik Poznanski。