如何在运行时在枢轴项中设置标题模板

时间:2011-08-01 07:56:42

标签: windows-phone

实际上我想在每个支点项目的标题上设置图像.....在运行时使用资源

     <UserControl x:Class="WindowsPhoneApplication7.heder"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
d:DesignHeight="18" d:DesignWidth="24" Loaded="UserControl_Loaded">

<UserControl.Resources>
    <DataTemplate x:Key="heder_image">
        <Image Source="/WindowsPhoneApplication7;component/Images/appbar.feature.settings.rest.png"></Image>
    </DataTemplate>
</UserControl.Resources>

这是一种资源 现在我的支点项目在另一个cs文件

     heder dis =new  heder();
   pivotItem[i] = new PivotItem();
   pivotItem[i].Header = (DataTemplate)dis.Resources["heder_image"];

但是标题设置没有设置......图像r不显示

2 个答案:

答案 0 :(得分:2)

您在这里做错了,就是您要将Header的{​​{1}}设置为模板,而不是使用Pivot.HeaderTemplate。这样就没有必要在C#中生成项目,而是使用数据绑定(通过。Pivot.ItemsSource属性),并按照您的意图在XAML中执行所有样式。

当说到使用图像作为Pivot Header时,应该真的不鼓励,因为它违背了平台默认的外观和感觉,因此违背了平台UI和UX准则。

答案 1 :(得分:0)

检查图像的Build Action是否设置为Content(请参阅VS2010资源管理器中文件的属性)。如果图片与XAML页面位于同一项目中,请使用"/Images/appbar.feature.settings.rest.png"代替"/WindowsPhoneApplication7;component..."

使用此XAML代码段并在XAML中设置标题:

<controls:Pivot ItemsSource="{Binding MyObjects}" HeaderTemplate="{StaticResource heder_image}">
    <controls:Pivot.ItemTemplate>
        <DataTemplate>
            ...
        </DataTemplate>
    </controls:Pivot.ItemTemplate>
</controls:Pivot>