首页 > 其他 > 详细

dede 添加自定义函数

时间:2014-02-13 00:01:15      阅读:508      评论:0      收藏:0      [点我收藏+]

常用的TextBlock使用如下:

bubuko.com,布布扣
<TextBlock Name="textBlock1" TextWrapping="Wrap">
  <Bold>TextBlock</Bold> is designed to be <Italic>lightweight</Italic>,
  and is geared specifically at integrating <Italic>small</Italic> portions
  of flow content into a UI.
</TextBlock>
<Button Width="100" Margin="10">Click Me</Button>
<TextBlock  Name="textBlock2" 
  TextWrapping="Wrap" Background="AntiqueWhite" TextAlignment="Center"
>
  By default, a TextBlock provides no UI beyond simply displaying its contents.
</TextBlock>
<Button Width="100" Margin="10">Click Me</Button>
bubuko.com,布布扣

显示如下:

bubuko.com,布布扣

但是当碰到这种需求:

一个字符窜,分三段组成,第一段一种字体,常量,第二段一种字体,并且需要绑定变量,第三段又是一种字体,常量,,现在需要绑定在一个Textblock上怎么处理呢?

有三种解决方案:

第一种:在Textblock赋值前做处理,重新组织这个字符窜,再赋值,或者使用IValueConverter接口,但这种方式比较麻烦。

第二种: 使用Run

bubuko.com,布布扣
 <TextBlock Grid.Row="0"
                   Margin="0,0,73,8"
                   HorizontalAlignment="Right"
                   VerticalAlignment="Center"
                   DataContext="{Binding RelativeSource={RelativeSource AncestorType=local:MainWindow},
                                         Path=Timer}"
                   Visibility="{Binding Status,
                                        Converter={StaticResource OpVisibilityConverter}}">
            <Run Style="{DynamicResource Run.TimeoutText}" Text="超时倒计时" />
            <Run Style="{DynamicResource Run.TimeoutNumber}" Text="{Binding RemainedSeconds, Mode=OneWay}" />
            <Run Style="{DynamicResource Run.TimeoutText}" Text="秒" />
        </TextBlock>
bubuko.com,布布扣

第三种:使用AccessText

bubuko.com,布布扣
<TextBlock Margin="0,0,73,267"
                   DataContext="{Binding RelativeSource={RelativeSource AncestorType=local:MainWindow},
                                         Path=Timer}"
                   Visibility="{Binding Status,
                                        Converter={StaticResource OpVisibilityConverter}}">
            <AccessText Style="{DynamicResource AccessText.TimeoutText}">超时倒计时</AccessText>
            <AccessText Text="{Binding RemainedSeconds, Mode=OneWay}" Style="{DynamicResource AccessText.TimeoutNumber}"></AccessText>
            <AccessText Style="{DynamicResource AccessText.TimeoutText}"></AccessText>
        </TextBlock>
bubuko.com,布布扣


第二,第三种方法比较推荐,比较清晰,减少了前台复杂的转换处理。

最后效果如下:

bubuko.com,布布扣

dede 添加自定义函数

原文:http://www.cnblogs.com/subtract/p/3546112.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!