我正在通过一本初学者的书来学习wp7,在一本基本的教程中,我遇到了一个未知的异常。
应用程序资源(App.xaml)文件中定义的控件模板如下所示。
<Application.Resources>
<Style x:Key="CustomButtonStyle" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<StackPanel>
<Image Source="Images\image.png" Width="200" Height="300" />
<TextBlock Text="{TemplateBinding Content}" TextAlignment="Center" />
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
然后当我创建一个使用此模板的按钮时,例如
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button x:Name="CustomButton" Width="250" Height="350" Content="Custom Button" Style="{StaticResource CustomButtonStyle}" />
</Grid>
我总是得到一个未知的异常。我把它缩小到了
Text="{TemplateBinding Content}"
控件模板中的属性但是,为什么会出现异常?我有内容,它是一个字符串格式。我不知道它还能是什么? 当我创建一个项目时,我的目标是Windows Phone 7.1。我不知道有什么变化吗? 任何帮助表示赞赏。 谢谢 乔
答案 0 :(得分:1)
将<TextBlock Text="{TemplateBinding Content}" TextAlignment="Center" />
更改为<ContentPresenter HorizontalAlignment="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<StackPanel>
<Image Width="200"
Height="300"
Source="Images\image.png" />
<ContentPresenter HorizontalAlignment="Center" />
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>