WP7设置Datepicker边框颜色

CAC*_*lan 3 silverlight xaml silverlight-toolkit windows-phone-7

我在工具箱Datepicker中设置边框颜色时遇到问题,因为它出现在页面上.我不是在谈论DatePickerPage.我可以设置背景和前景色,但边框不会占用.

<toolkit:DatePicker x:Name="dpDeliverBy" Header="Deliver By" Grid.Row="6" 
HeaderTemplate="{StaticResource MyHeaderTemplate}" Margin="-12, 0, 0, -10" Value=""
BorderBrush="Black" Background="White" BorderThickness="2" Foreground="Black" />
Run Code Online (Sandbox Code Playgroud)

边界似乎没有抓住,我不知道使用什么其他财产.

Den*_*sky 6

您无法编辑DatePicker模板,这是一件有趣的事情.我通过查看源代码发现,由于某种原因它发生,因为模板是在主控制主题中定义的 - Generic.xamlBorderBrush本身没有定义属性.

下载软件包 - 您将需要它来在现有框架之上构建自定义控件.

你应该打开这个主题文件,如果哟看模板DatePicker,您可以编辑值BorderBrushBorderThickness.需要记住的一件事 - 一旦重新编译源代码,就需要确保使用正确的库(在主项目中引用时).默认情况下,当您添加Microsoft.Phone.Controls.Toolkit单元时,它将引用在GAC中注册的库(假设您安装了工具包)并获取位于SDK文件夹中的库 - 您不希望这样.更改库名称或更改本地副本.

如果你需要一个教程,我只写了一个.

这是修改后的样式(在源代码中进行了修改,以便于重用):

<Style TargetType="controls:DatePicker">
    <Setter Property="Background" Value="{StaticResource PhoneTextBoxBrush}"/>
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="BorderBrush" Value="Azure"/>
    <Setter Property="Foreground" Value="{StaticResource PhoneTextBoxForegroundBrush}"/>
    <Setter Property="HorizontalContentAlignment" Value="Left"/>
    <Setter Property="PickerPageUri" Value="/Microsoft.Phone.Controls.Toolkit;component/DateTimePickers/DatePickerPage.xaml"/>
    <Setter Property="ValueStringFormat" Value="{}{0:d}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="controls:DatePicker">
                <StackPanel>
                    <ContentControl
                        Content="{TemplateBinding Header}"
                        ContentTemplate="{TemplateBinding HeaderTemplate}"
                        Foreground="{StaticResource PhoneSubtleBrush}"
                        HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
                        Margin="12,0,12,-4"/>
                    <Button
                        x:Name="DateTimeButton"
                        Content="{TemplateBinding ValueString}"
                        Background="{TemplateBinding Background}"
                        BorderThickness="{TemplateBinding BorderThickness}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        FontFamily="{TemplateBinding FontFamily}"
                        Foreground="{TemplateBinding Foreground}"
                        Height="72"
                        HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"/>
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)