标签: textblock

动画WPF菜单

如果我有类似的东西:

<StackPanel Orientation="Horizontal">
    <TextBlock Text="FIRST"  Margin="5" VerticalAlignment="Center" />
    <TextBlock Text="SECOND" Margin="5" VerticalAlignment="Center" />
    <TextBlock Text="THIRD"  Margin="5" VerticalAlignment="Center" />
    <TextBlock Text="FOURTH" Margin="5" VerticalAlignment="Center" />
    <TextBlock Text="FIFTH"  Margin="5" VerticalAlignment="Center" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何创建一个动画,其中TextBlocks将从屏幕的右侧逐个推出?

你能告诉我一个类似的例子吗?

我知道我可能需要使用Canvas而不是StackPanel,但如何妥善安排它们然后我不知道......

c# wpf animation menu textblock

1
推荐指数
1
解决办法
4610
查看次数

WPF 文本溢出

我目前正在尝试这样做,以便当我接受一个字符串时,它会填满第一个文本块,直到它溢出,然后它应该从文本块 2 开始。目前,我将它的字符串切成两段最后一个单词的最后一个结尾,我猜是可以放入文本块 1 的最大字符数,后半部分是 2,但我遇到的问题是永远不可能弄清楚在哪里切断文本,因为当它换行时,剩下的空间会占用不同的大小。所以我只剩下 textblock 1 在末尾有一些被截断的文本,这使得两者之间似乎缺少一些单词。有没有办法以编程方式找到文本块上的溢出?

ps- 文本块是在运行时在 C# 中创建的,而不是 wpf 标记。

这就是我所做的。我使用 myDescription 并尝试根据我近似的大小将其放入 myDesc[0] 和 [2] 中。问题是,如果我猜测大小阈值太大,它会给 myDesc[0] 留下一个 ... 或截断的词,如果我把它估计得太小,它就会有巨大的尴尬差距。我切断的任何数字都没有。

TextBlock[] myDesc = new TextBlock[2];
string myDescription = infoLoader.games[gameID].description[currentLanguage];
        string[] myWords = myDescription.Split(' ');

        string firstPart = "";
        string secondPart = "";


        int currentWord = 0;


        // New and improved way
        int currentLine = 0;
        int charsInLine = 0;
        while (currentWord < myWords.Length)
        {
            // Determine the size of the word based on the …
Run Code Online (Sandbox Code Playgroud)

c# wpf textblock word-wrap

1
推荐指数
1
解决办法
6136
查看次数

Silverlight TextBlock可以容纳多少个字符?

我试图将最终用户许可协议(EULA)放入WP7 silverlight文本块控件.但是,它一直在截断我的文字.为什么会这样?WP7 silverlight文本块可以容纳的文字大小或字符数有限制吗?

下面是我在xaml方面所做的一个例子(其余的xaml周围是自动生成的默认值).

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ScrollViewer>
        <TextBlock x:Name="tbMsg" TextWrapping="Wrap"/>
    </ScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)

我也试过使用TextBox,但现在,我甚至无法在TextBox中滚动.我已经明确地将VerticalScrollBarVisibility设置为Visible,但我仍然无法向下滚动TextBox.事实上,我甚至没有看到垂直滚动条.我不知道这个观察是否因为我仍在通过模拟器查看UI.

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <TextBox x:Name="tbMsg" TextWrapping="Wrap" VerticalScrollBarVisibility="Visible"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

textblock windows-phone-7

1
推荐指数
1
解决办法
2603
查看次数

XAML TextBlock:如何使 TextBlock 具有可变高度?

我有一个包含 TextBlocks 的 ListBox。

有时 TextBlock 的内容太长,我希望此条目的高度根据需要增加一倍或三倍以容纳文本。

我试过 TextWrapping="Wrap" 但它不起作用。每个 TextBlock 仍然只有一行高度。

有没有一种简单的方法可以解决 XAML 中的问题?谢谢。

*附加信息:我试图简化问题,但也许完整的场景更好。

  1. 我有一个列表框,其条目根据下面代码中的模板显示。
  2. 每个条目有 2 条信息:产品价格后跟产品名称。
  3. 我不想在列表框中使用水平滚动条,并希望在必要时以 2 行或更多行显示产品名称。产品名称是第二个 TextBlock。

这是我的 XAML:

<ListBox Name="listBox1" ItemsSource="{Binding}" Margin="10" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock MinWidth="40"  TextAlignment="Right" Text = "{Binding ProductPrice}" />


                    <TextBlock Text = "{Binding ProductName}" TextWrapping="Wrap" />

                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>

    </ListBox>
Run Code Online (Sandbox Code Playgroud)

wpf xaml listbox textblock

1
推荐指数
1
解决办法
5138
查看次数

TextBlock 中的绑定在 WPF 中不起作用

我想动态更改TextBlock班级中的文本。

XAML 代码

<TextBlock Name="Footer_text"  Text=""/>
Run Code Online (Sandbox Code Playgroud)

C#

string footerMainMenuText = "Setting";
Binding  set = new Binding("");
set.Mode = BindingMode.OneWay;
set.Source = footerMainMenuText;
Footer_text.DataContext = footerMainMenuText;
Footer_text.SetBinding(TextBlock.TextProperty, set);
Run Code Online (Sandbox Code Playgroud)

我检查了最后一行,并且Footer_text.Text设置正确。( Footer_text.Text="Setting"),但TextBlock在我的应用程序中没有显示“设置”。这里有什么问题?

c# data-binding wpf textblock

1
推荐指数
1
解决办法
1万
查看次数

删除 C# TextBlock 内联元素填充

关于TextBlockC#中的UIElement,我们可以向Run其中添加多个对象,这些对象将附加到inlines属性中。这是我们在一个 .txt 文件中显示不同格式(字体、大小等)的多段文本的一种方式TextBlock

我的问题是:当我将两个Run对象添加到一个对象中时TextBlock,每个对象之间存在填充Run。例如,我添加“12”和“34”Run对象,最后它们将在视图中显示为“12 34”。但我需要的是它们应该作为一个单词连接在一起 - “1234” - 没有那种填充

我们可以使用任何设置来防止这种填充吗?

c# wpf textblock padding

1
推荐指数
1
解决办法
948
查看次数

StringFormat 值为零

我正在使用componentart开发一个 wpf 应用程序我有一个这样的文本块

<TextBlock FontSize="28" Text="{Binding DataPoint.Y, StringFormat=\{0:#\\%\}}" Foreground="Black">
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我的 StringFormat 在数字后面放了一个 '%' 符号,但是如果我的数据是 0.0(我在后面的代码中填充了组件,我的变量是一个双精度)我得到“%”,但我想得到“ 0%”,我该怎么做?

wpf xaml textblock string-formatting componentart

1
推荐指数
1
解决办法
2617
查看次数

Windows Phone 8 - StackPanel中的TextBlock没有正确包装文本?

我有一个基于Panorama控件的应用程序.单击其中一个Panorama控件页面(选项卡)上的项目可转到详细信息页面.在该详细信息页面上,我有下面的XAML呈现项目内容.如您所见,手机中StackPanel托管了一个TextBlock :PanoramaItem.Header元素.我希望该元素中的文本包含TextBlock在视图模型中绑定的视频标题.我已将TextWrapping设置为wrap并且已为其指定了固定宽度,因此TextBlock不会增长/扩展(因此不会换行).文本确实换行,但有些行仍然会被剪切,其中一些单词显示为"cut off".我的XAML出了什么问题?

我读到了有关使用DockPanel的信息:

TextBlock在WPF布局中包装

但是这个应用程序在很多不同的页面上都有一个StackPanel,所以如果我能坚持使用StackPanel,我更喜欢它.

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid Grid.Row="0" Visibility="{Binding IsInternetAvailable}" Background="{StaticResource PhoneAccentBrush}" Height="30">
        <TextBlock Text="{Binding Path=LocalizedResources.NoConnection, Source={StaticResource LocalizedStrings}}" Margin="10, 0"/>
    </Grid>
    <phone:Panorama x:Name="PanoramaFavorites_DetailVideos" Grid.Row="2" Foreground="{StaticResource CustomApplicationTextBrush}" Background="{StaticResource CustomApplicationBackgroundImage}" SelectionChanged="panoramaFavorites_DetailVideos_SelectionChanged">
        <phone:Panorama.Title>
            <StackPanel Orientation="Horizontal" Margin="0,15,0,0">
                <Image Height="85" Width="85" Source="http://appstudiodata.blob.core.windows.net/apps/1383/db936107-bce6-41a2-9d95-1d342f66c6bb/res/Logo-b3883645-a6cd-4cc8-82be-97c87a266656.png" Stretch="Uniform" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="5,0,10,5" RenderTransformOrigin="0.5,0.5" />
                <TextBlock …
Run Code Online (Sandbox Code Playgroud)

c# xaml textblock word-wrap windows-phone-8

1
推荐指数
1
解决办法
4996
查看次数

如何将WPF椭圆的高度绑定到自己的宽度?

我在Grid.Row和Grid.Column中绘制了一个椭圆.Row总是高于Column宽.

我想绘制一个填充网格列宽度的椭圆,以及它的高度使其成为一个完美的圆.

我还想在上面的椭圆的中心画一个数字.基本上以一个以数字为中心的圆圈结束.

我可以在我的Ellipse和包含数字的TextBlock上轻松设置Horizo​​ntalAlignment ="Stretch".这照顾了我的宽度.但是,即使Grid.Column宽度发生变化,如何使Ellipse和TextBlock的高度始终与其宽度匹配?

这里有一些XAML来说明这一点.在下面的XAML中,我希望硬编码的'63'基于Grid.Column宽度或椭圆的宽度范围:

    <Ellipse Grid.Row="1" Grid.Column="0" HorizontalAlignment="Stretch" Height="63" Stroke="Black" StrokeThickness="3" VerticalAlignment="Top"/>
    <TextBlock Grid.Row="1" Grid.Column="0" Width="63" Height="63" VerticalAlignment="Top" Text="1" TextAlignment="Center" FontSize="42" FontWeight="Bold"/>
Run Code Online (Sandbox Code Playgroud)

感谢你的帮助.我最终使用了Herdo的答案.只需将Horizo​​ntalAlignment设置为Stretch,然后将高度绑定到椭圆的实际宽度即可.我对椭圆和文本块做了同样的事情:

    <Ellipse HorizontalAlignment="Stretch" Height="{Binding ActualWidth, RelativeSource={RelativeSource Self}}"/>
    <TextBlock HorizontalAlignment="Stretch" Height="{Binding ActualWidth, RelativeSource={RelativeSource Self}}"/>
Run Code Online (Sandbox Code Playgroud)

c# wpf binding ellipse textblock

1
推荐指数
1
解决办法
5009
查看次数

WPF FlowDocument到InlineCollection

我想在WPF应用程序中为TextBox文本创建一个小的“位置编辑器”。为此,我想使用RichTextBox。由于RichTextBox与FlowDocument一起使用,而TextBlock与InlineCollection一起使用,所以这不起作用。有没有一种简单的方法可以将RichtextBox文档转换为InlineCollection?(如果我仅允许RTB内容支持内联?)

wpf textblock richtextbox flowdocument

0
推荐指数
1
解决办法
633
查看次数