【问题标题】:Modifying FullScreen Design for ListPicker修改 ListPicker 的全屏设计
【发布时间】:2012-03-16 05:33:07
【问题描述】:

我使用 WP7 已经有一段时间了,我大量使用 listPicker/DatePicker。虽然我讨厌它的设计。我使用 liskPicker 的属性 ExpansionMode="FullScreenOnly"。我试图让这些控件看起来更漂亮

// 将源设置为 FullModeItemTemplate FullModeItemTemplate="{StaticResource lpkFullItemTemplate}"

//这个Resource的定义如下:

<DataTemplate x:Name="lpkFullItemTemplate">
<StackPanel Orientation="Horizontal" Margin="5 5 5 5" Background="#FFA3A3A3" 
  Width="475" Height="45" >
<TextBlock Text="{Binding}"  Foreground="Black" Margin="5 5 15 5"  />
</StackPanel>
</DataTemplate>

我需要真正的改变,改变那个弹出窗口的背景和这样的改变,这可能吗?还是我需要从头开始构建自己的弹出窗口?

【问题讨论】:

    标签: xaml windows-phone-7.1 silverlight-toolkit windows-phone-7


    【解决方案1】:

    为此,您必须在应用程序中从 Silverlight for Windows Phone 工具包创建 ListPickerPage.xaml 文件的副本,更改它以满足您的要求,然后在您的 ListPicker 控件上将 PickerPageUri 属性设置为新的 ListPickerPage.xaml

    【讨论】:

    • 抱歉,但是...实际上如何做到这一点?我的意思是,我将 ListPickerPage.xaml 复制到我的项目中,但它需要相应的 .xaml.cs(OnPickerTapped 事件处理程序)。所以我也添加了它,但是由于缺少或无法访问引用而出现了很多警告和错误。
    • 我和费利佩在同一条船上。我看到到处都写着“只是复制它”,但我不知道怎么做。我复制了 xaml,甚至复制到了 xaml.cs 文件中,但是如果不真正反汇编和重新创建功能,我就无法完成这项工作,因为代码引用了很多对内部字段的引用。我想也许 ListPicker 传递了某种对自身的引用,所以当用户选择一个项目时,你只需要伪造足够的 ListPickerPage 来操纵 ListPicker 吗?但我不确定。
    【解决方案2】:

    我想改进佩德罗的回答,但我仍然无法发表评论。你可以看到有人在上面提出问题。

    要复制ListPickerPage,您需要ListPickerPage.xamlListPickerPage.xaml.cs 文件。如果要编译这些文件,则需要在Extensions.csItemsControlExtensions.csVisualTreeExtensions.cs 上定义一些扩展方法。您可以复制这三个文件,也可以挑选您需要的方法并将它们添加到您自己的文件中。

    【讨论】:

    • 我知道您所说的内容是必要的,但就像我在其他帖子中所说的那样,这还不够。我仍然无法使它工作。是的,新修改的全屏页面正常打开,没有例外,但所有内容都设置为 null.. 没有项目,没有标题..没有任何内容。
    • 啊,是的,有一个问题,正如this issue 中所解释的那样。最后我不得不将 ListPicker 控件代码复制到我的项目中。
    猜你喜欢
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多