pjsLucky 发表于 2012-12-27 17:35:00

silverlight的 GcSpreadSheet控件放到ChildWindow无法切换Sheet页

silverlight的 GcSpreadSheet控件放到ChildWindow无法切换Sheet页

ZenosZeng 发表于 2012-12-27 18:18:00

pjsLucky

该问题我会在调查之后,明天给你回复。

ZenosZeng 发表于 2012-12-28 11:57:00

回复 1楼pjsLucky的帖子

pjsLucky 你好

Spread WPF-Silverlight本身设计时不支持这样的使用方式,不过可以尝试使用以下方法来解决这一问题
this.gcSpreadsheet1.MouseLeftButtonDown += OnGcSpreadsheetMouseLeftButtonDown;
private void gcSpreadsheet1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
SheetTab sheetTab = null;
var popups = VisualTreeHelper.GetOpenPopups();
if (popups != null && popups.Count() > 0)
{
foreach (var popup in popups)
{
if (popup.Child is ChildWindow)
{
var point = e.GetPosition(popup.Child);
var hitElements = VisualTreeHelper.FindElementsInHostCoordinates(point, popup).ToList<UIElement>();
if (hitElements == null || hitElements.Count == 0)
return;
foreach (var element in hitElements)
{
if (element is SheetTab)
{
sheetTab = (SheetTab)element;
break;
}
}
}
}
}
 
if (sheetTab != null)
{
if (sheetTab.SheetIndex >= 0)
{
this.gcSpreadsheet1.ActiveSheetIndex = sheetTab.SheetIndex;
}
else //Click on the New sheettab, insert a new worksheet and set the index to the new added sheet.
{
this.gcSpreadsheet1.Workbook.Sheets.Insert(this.gcSpreadsheet1.SheetCount, new GrapeCity.Windows.SpreadSheet.Data.Worksheet());
this.gcSpreadsheet1.ActiveSheetIndex = this.gcSpreadsheet1.SheetCount - 1;
}
}
}

zyd200888 发表于 2012-12-28 13:09:00

为什么测版的可以,正试版的就不行了

Zoe 发表于 2012-12-28 13:28:00

回复 4楼zyd200888的帖子

您好:
      请问您使用的测试版的版本号和正式版的版本号分别是多少?方便我们重现您说的问题。

pjsLucky 发表于 2013-1-4 10:32:00

回复 5楼Zoe的帖子

试用版是1.0.0.0,正式版是1.0.4.0
1.0.0.0是没有这个问题的

pjsLucky 发表于 2013-1-4 14:13:00

回复 3楼dof的帖子

我用了你这个方法之后Sheet页下面的名字就无法重命名了

jackshang 发表于 2013-1-4 14:32:00

是的, 我们给你提供的方法只能让您可以通过鼠标点击来切换ActiveSheet, 无法双击进入编辑状态后重命名Sheet.

pjsLucky 发表于 2013-1-4 15:20:00

回复 8楼jackshang的帖子

有没有其他办法呢?

jackshang 发表于 2013-1-4 16:04:00

目前Spread WPF-Silverlight对ChildWindow的支持不是很完善, 我们给您提供的方法只能帮您解决切换ActiveSheet的问题.如果您必须在ChildWindow中支持重命名sheet的话, 您可以在外面自己写代码设置WorkSheet.Name属性的方法来做.
页: [1] 2
查看完整版本: silverlight的 GcSpreadSheet控件放到ChildWindow无法切换Sheet页