【问题标题】:Silverlight DataGrid - simulate Outlook AutoPreviewSilverlight DataGrid - 模拟 Outlook AutoPreview
【发布时间】:2010-10-18 16:58:59
【问题描述】:

我想使用 Silverlight DataGrid 来显示笔记。当他们在网格中选择一个项目时,我将在屏幕的不同区域显示注释。不过,我也希望做一些类似于 Outlook AutoPreview 的操作,其中注释的前几行显示在网格中每一行的下方。

使用 Silverlight DataGrid 完成此任务的最佳方法是什么?或者,是否有更适合的替代第三方工具?

如果有帮助,这就是 Silverlight 4。

【问题讨论】:

  • 标准 Grid 和 GridSplitter 有什么问题?
  • 我无法想象如何获得自动预览效果。如果你能进一步解释,也许我会明白的。我指的是让网格中的每一行在其下方都有一个部分,电子邮件的前几行显示为蓝色。我不是指的是选中时显示完整电子邮件的视图窗格。

标签: .net silverlight silverlight-4.0


【解决方案1】:

在绑定之前,是否可以简单地更改 DataGrid 行的内容,使其不仅包括注释的“标题”,还包括节点的前几行?

附言这假设您希望 DataGrid 中的 all 行显示注释的前几行,而不仅仅是选中的那一行(这对我来说更有意义,因为一旦它被选中,您已经在单独的控件中显示了节点的全部内容)

【讨论】:

  • 好吧,我不知道这是否可能。我想这就是我要问的。你能提供更多关于你的建议的细节吗?
  • 您能否提供一个如何填充 DataGrid 的示例?你绑定什么?
【解决方案2】:

我正在回答我自己的问题,因为我最终弄明白了。我在 Blend 中放置了一个 DataGrid,并编辑了 RowStyle 模板的副本。在模板的一部分可以找到这个控件:

<sdk:DataGridDetailsPresenter x:Name="DetailsPresenter" .../>

该行的所有内容都在该控件内呈现。最初,该控件还具有 Grid Row 和 Column 属性。我将该控件包围在 StackPanel 中,并将网格属性移动到新的 StackPanel。然后,在该控件之后,我使用 TextWrapping="Wrap" 和 TextTrimming="WordEllipsis" 创建了一个 TextBlock 控件。我还给了它正确的颜色、字体、高度、边距等,让它看起来正确。

最后,它看起来几乎与 Outlook AutoPreview 完全一样。

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 2011-01-02
    • 2010-12-16
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多