Twitter角色计数

时间:2014-10-07 10:21:48

标签: twitter textbox windows-store-apps winrt-xaml

我想在Windows Phone 8&amp ;;中为Twitter Twitt TextBox实现剩余的字符数特征。 Windows商店8.1。

Twitter将Tweet长度限制为140个字符。如果Textbox文本长度超过140个字符,我不允许用户删除该短信。

如果用户在textBox中输入任何URL,twitter api会将Url长度视为22或23。

如何使用Urls实现剩余的字符数功能?。如果Twiteer Api中有任何方法可用吗?

https://dev.twitter.com/overview/api/counting-characters https://dev.twitter.com/overview/t.co

提前致谢。

1 个答案:

答案 0 :(得分:0)

这是一个简单而又令人难以置信的组合。

所以,我用一种行为解决了这个问题;我称之为SocialTextBoxBehavior。

  

您可以在此处下载资源:http://codepaste.net/j4ry9v

它很容易支持这样的用户界面:

enter image description here

  

我当然测试了它以确保它有效。好像。

我添加了一些可以绑定回viewmodel的不错的属性:

  1. MaxLength - 您可能会将此设置为140
  2. MinLength - 这取决于您,默认为5
  3. UrlLength - 在您的问题中,您指出22或23(这是一个标量值)
  4. CurrentLength - 当前,调整后的文本长度;这是在用户输入
  5. 时更新的
  6. CurrentRemaining - 当前,已调整剩余;这是在用户输入
  7. 时更新的
  8. IsValid - 确保CurrentLength介于约束之间;这是在用户输入
  9. 时更新的

    使用该行为的语法非常简单。我希望你这么认为。

    像这样:

    <StackPanel>
        <TextBox Text="{Binding Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
            <Interactivity:Interaction.Behaviors>
                <Behaviors:SocialTextBoxBehavior x:Name="TwitterBehavior" />
            </Interactivity:Interaction.Behaviors>
        </TextBox>
        <TextBlock Margin="0,10" DataContext="{Binding ElementName=TwitterBehavior}">
            <Run Text="{Binding CurrentLength}" />
            <Run Text="character(s) typed." />
            <LineBreak />
            <Run Text="{Binding RemainingLength}" />
            <Run Text="character(s) remaining." />
            <LineBreak />
            <Run Text="{Binding MaxLength}" />
            <Run Text="character(s) limit." />
            <LineBreak />
            <Run Text="Can submit? " />
            <Run Text="{Binding IsValid}" />
        </TextBlock>
        <Button IsEnabled="{Binding IsValid, ElementName=TwitterBehavior}" />
    </StackPanel>
    

    祝你好运!