我在 windows phone 市场上有一个已发布的应用程序,我正在尝试将其移植到 Win 8。我正在使用Windows 8 Release Preview和Visual Studio Express RC 2012 for Win 8,代码是C#-XAML
.
我创建了一个自定义 6x7 日历。前 7 个按钮放入第一个StackPanel
,下一个放入另一个面板,依此类推。所以有6个StackPanels
持有42个按钮。所有这些 StackPanel 都放在一个Grid
便于定位的位置。
每个按钮都与一个Holding
名为 OnLongPress 的 EventHandler 相关联。所以我面临的问题是,当按下按钮时, OnLongPress 函数被调用两次。在调试时,我发现第一次Holding state
isStarted
和下一次调用它时Holding state
id Completed
。我无法弄清楚为什么它被调用了两次。
是不是因为事件被冒泡了??:(
private void OnLongPress(object sender, HoldingRoutedEventArgs e)
{
Button butClicked = (Button)sender;
int iNumClicked = Convert.ToInt32(butClicked.Content.ToString());
CycleManager pCycMan = CycleManager.Instance;
string iVal, jVal;
int iRow, jCol;
string butName = butClicked.Name;
iVal = butName.Substring(1, 1);
jVal = butName.Substring(2, 1);
iRow = Convert.ToInt32(iVal);
jCol = Convert.ToInt32(jVal);
DateTime dtSelDate = new DateTime(m_yearBuffer[iRow, jCol], m_monthBuffer[iRow, jCol], iNumClicked);
int trackingStatus = pCycMan.IsDateOkForHistory(dtSelDate);
// setting or resetting few colors based on few checks
}
由于我是 Win 8 dev 的新手,如果有人能提供一些启示,那将会很有帮助。