Silverlight 从cs更改文本块颜色(windows phone 7)
我是WindowsPhone7的全新开发者。我在MainPage.xaml页面上有Silverlight 从cs更改文本块颜色(windows phone 7),silverlight,windows-phone-7,textblock,Silverlight,Windows Phone 7,Textblock,我是WindowsPhone7的全新开发者。我在MainPage.xaml页面上有TextBlock Text=“{Binding MyDate} 如何从MainPage.xaml.cs更改此文本块的颜色?尝试以下操作: <Grid Background="Yellow" > <TextBlock Foreground="Blue" Height="20" HorizontalAlignment="Str
TextBlock Text=“{Binding MyDate}
如何从MainPage.xaml.cs更改此文本块的颜色?尝试以下操作:
<Grid Background="Yellow" >
<TextBlock Foreground="Blue"
Height="20"
HorizontalAlignment="Stretch"
Margin="0"
Text="this is a test"/>
</Grid>
首先,您需要为
TextBlock
元素提供一个x:Name
属性,例如x:Name=“myTextBlock”
。完成此操作后,TextBlock在代码隐藏中作为一个字段可用,其名称与您在x:Name
中输入的名称相同
要设置文本块的前景色,可以使用
myTextBlock.Foreground = new SolidColorBrush(someColor);
由于您的文本块位于DataTemplate中,因此[可能]绑定到集合中的项目。这意味着如果将颜色绑定到属性,则需要在项目类中使用该属性,而不需要在主页中使用该属性。如果希望不同的项目具有不同的颜色,则需要向项目类添加属性。如果您已经有一个类型不正确的属性(笔刷)然后可以在绑定上使用转换器,以避免添加不必要的属性 如果不想将属性添加到item类中,那么最好的选择是在pages资源中声明多个DataTemplates,然后根据需要交换模板:
something.ItemTemplate = (DataTemplate)this.Resources["BlueItemTemplate"];
进入xaml中的属性并添加
Foreground="Red"
我需要根据逻辑更改cs文件的颜色(某些字段将有红色,其他黑色),但逻辑很简单。然后,通过cs文件更改相应textblock的网格背景色,因为textblock没有背景属性,这就是为什么我们放置Grid.set Grid的name属性,然后设置backround。我有以下内容:错误1当前上下文中不存在名称“myTextBlock”@Karloss:因为您没有提供所有的MainPage.xaml,我猜您可能没有给TextBlock一个
x:name=“myTextBlock”“
属性,或者您的文本块位于DataTemplate
中。是的,我的文本块位于DataTemplate中。我如何访问它?@Karloss:请编辑您的问题,包括(a)完整的MainPage.xaml,以及(b)为什么要从codebehind设置文本块的颜色。你已经绑定到文本块的文本了,你不能在前台也使用绑定吗?谢谢你的想法。我在其他数据中绑定了颜色。请编辑此问题以提供更多相关详细信息,例如文本块位于DataTemplate中的事实。展示一些具有代表性的XAML将帮助我们更好地帮助您。