我使用了Wacom STU 530 signature tab与Signature SDK v3.20.4。,文档似乎只在购买SDK时提供,因此我无法在此处提供链接,但您可以找到一些代码示例here。
我的问题是重新设置签名板上显示的按钮,我无法找到。一些代码:
/* We have this controller which was placed in a windows form
* It's that object that will mainly communicate with the Wacom tab
* It's already initialized, I'm showing this to just to show the type & name */
AxWizCtl WizCtl;
bool success = WizCtl.PadConnect()
if(isSuccess) {
WizCtl.Font = new Font("Arial", 20, FontStyle.Bold);
WizCtl.AddObject(ObjectType.ObjectButton, id, x, y, text, null);
/*
* And now what? I can only change the font and dimensions.
* How could I change things like the border or the color?
* I don't even know how I can access the newly created object
*/
WizCtl.Display();
}
我知道这一定有可能,这个SDK有这个方法CaptureResult res = SigCtl.CtlCapture("who", "why");
(SigCtl
是一个AxSigCtl
对象)可以显示带有彩色按钮的预定义表单,但我想要建立自己的。
(此处的按钮为蓝色,而使用AddObject
创建的按钮为白色)
此外,与字体更改不同,这不起作用:
AxWizCtl WizCtl;
bool success = WizCtl.PadConnect()
if(isSuccess) {
WizCtl.Font = new Font("Arial", 20, FontStyle.Bold);
WizCtl.BorderColor = Color.DarkOrange;
WizCtl.BackColor = Color.HotPink;
WizCtl.BorderWidth = 3;
WizCtl.AddObject(ObjectType.ObjectButton, id, x, y, text, null);
WizCtl.Display();
}
答案 0 :(得分:0)
在联系Wacom支持后,我设法得到答案:
AxWizCtl WizCtl;
bool success = WizCtl.PadConnect()
if(isSuccess) {
WizCtl.Font = new Font("Arial", 20, FontStyle.Bold);
WizCtl.SetProperty("ObjectForegroundColor", ConvertColor(Color.DarkOrange)); //Affects text and border colors
WizCtl.SetProperty("ObjectBackgroundColor", ConvertColor(Color.Pink)); //Affects backgroud color
WizCtl.AddObject(ObjectType.ObjectButton, id, x, y, text, null);
WizCtl.Display();
}
//Needed as the color format is a string like this : "0,0.165,1"
//The order being red, green and blue and the values between 0 and 1
private string ConvertColor (Color color) {
string r = ((float)(color.R / 255f)).ToString("0.000");
string g = ((float)(color.G / 255f)).ToString("0.000");
string b = ((float)(color.B / 255f)).ToString("0.000");
return String.Format("{0},{1},{2}", r.Replace(',', '.'), g.Replace(',', '.'), b.Replace(',', '.'));
}
就像字体一样,它会影响所有后续创建的元素,所以不要忘记重置它们。