Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 从cs更改文本块颜色(windows phone 7)_Silverlight_Windows Phone 7_Textblock - Fatal编程技术网

Silverlight 从cs更改文本块颜色(windows phone 7)

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

我是WindowsPhone7的全新开发者。我在MainPage.xaml页面上有
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将帮助我们更好地帮助您。