标签: textblock

TextBlock的可见行数

如果将TextWrapping设置为"Wrap",则WPF TextBlock可以包含多行文本.是否有"干净"的方式来获取文本行数?我考虑查看所需的高度并将其除以每条线的估计高度.但是,这看起来很脏.有没有更好的办法?

wpf textblock wpf-controls

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

滚动TextBlock

我在同一位置有一个TextBlock和一个文本框.根据用户所处的模式,我使一个可见,另一个折叠.这工作正常,但我怎样才能使Textblock可滚动?我想我应该使用ScrollViewer,但我不知道它为什么不起作用.我已经尝试过使用高度(自动和固定),但它不会滚动.我的xaml是这样的:

<ScrollViewer x:Name="detailsScroller" Height="285" Width="480"  Canvas.Top="76" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
    <Canvas x:Name="infoCanvas" Width="478"  >
     <TextBlock x:Name="textblockInfo" TextWrapping="Wrap"  Width="462" Height="197"  Canvas.Left="8"/>
     <TextBox x:Name="textboxInfo" TextWrapping="Wrap"  Width="478" AcceptsReturn="True" Height="300" Visibility="Collapsed" />
    </Canvas>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

谢谢!

silverlight xaml textblock scrollviewer windows-phone-7

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

WPF TextBlock红色负数

我试图找出创建样式/触发器以将前景设置为红色的最佳方法,当值<0时,最好的方法是什么?我假设DataTrigger,但我如何检查负值,我是否必须创建自己的IValueConverter?

wpf triggers styles datatrigger textblock

8
推荐指数
3
解决办法
9140
查看次数

WPF TextBlock.TextTrimming不使用自动调整大小的ColumnDefinition

我正在使用WPF网格作为窗口的布局.它有两列和任意数量的行.第一列专门用于标签,第二列用于用户输入字段(例如TextBox,ComboBox等).我的要求是:

  1. 第一列的最小宽度必须为50,最大宽度必须为180.
  2. 第一列必须调整其内容的大小,除非它违反第一个要求.
  3. 第二列必须占用所有剩余空间.

我试过下面的XAML:

<Grid>
    <Grid.ColumnDefinitions>
       <ColumnDefinition Width="Auto" MinWidth="50" MaxWidth="180" />
       <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
       <RowDefinition Height="Auto" />
       <RowDefinition Height="Auto" />
       <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <TextBlock Text="First Name" TextTrimming="CharacterEllipsis" />
    <TextBox Grid.Column="1" Text="{Binding FirstName}" />

    <TextBlock Grid.Row="1" Text="Family Name" TextTrimming="CharacterEllipsis" />
    <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding FamilyName}" />

    <TextBlock Grid.Row="2" Text="Label That Won't Fit in 180 units" TextTrimming="CharacterEllipsis" />
    <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding Text}" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

我希望第三行标签"不符合180个单位的标签"将被截断为"标签赢得......"之类的东西.相反,它被剪切到"标签不会",一半的"t"丢失.

我尝试了一种在网络上找到的不同方法.

<Grid>
    <Grid.ColumnDefinitions>
       <ColumnDefinition x:Name="LabelColumn" Width="Auto" MinWidth="50" MaxWidth="180" />
       <ColumnDefinition Width="*" /> …
Run Code Online (Sandbox Code Playgroud)

wpf grid xaml binding textblock

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

如何将变量与文本块绑定

我想知道如何将文本块绑定到我的C#类中的变量.

基本上我的.cs文件中有一个"cart"变量.在那个Cart类中,我可以访问不同的总数.

以下是我对绑定的看法,但它似乎没有绑定到变量......

<StackPanel
   Width="Auto"
   Height="Auto"
   Grid.ColumnSpan="2"
   Grid.Row="5"
   HorizontalAlignment="Right">
   <TextBlock
      Name="Subtotal"
      FontFamily="Resources/#Charlemagne Std"
      FontSize="20"
      Text="{Binding ElementName=cart, Path=SubTotal}">
   </TextBlock>
   <TextBlock
      Name="Tax"
      FontFamily="Resources/#Charlemagne Std"
      FontSize="20"
      Text="{Binding ElementName=cart, Path=Tax}">
   </TextBlock>
   <TextBlock
      Name="Total"
      FontFamily="Resources/#Charlemagne Std"
      FontSize="20"
      Text="{Binding ElementName=cart, Path=Total}">
   </TextBlock>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?再次感谢您的帮助!

data-binding wpf textblock

8
推荐指数
2
解决办法
3万
查看次数

无法在WPF中编辑Textblock内容

我正在处理我的第一个WPF应用程序,我注意到我无法编辑任何文本块中的文本值.

我似乎在这里找不到任何会阻止我改变它的错误......

<Label Content="Line Terminator" Grid.Row="0" Grid.Column="0" Margin="5"></Label>
<Border BorderThickness="1" BorderBrush="LightBlue" Grid.Row="0" Grid.Column="1" Margin="5">
    <TextBlock x:Name="txtLineTerm" Focusable="True" IsManipulationEnabled="True" Padding="3"></TextBlock>
</Border>
<Label Content="Field Terminator" Grid.Row="0" Grid.Column="2" Margin="5"></Label>
<Border BorderThickness="1" BorderBrush="LightBlue" Grid.Row="0" Grid.Column="3" Margin="5">
    <TextBlock x:Name="txtFieldTerm" Focusable="True" IsManipulationEnabled="True" Padding="3"></TextBlock>
</Border>
Run Code Online (Sandbox Code Playgroud)

有谁能看到这个问题?我觉得这里有一个我缺少的概念.任何解释将不胜感激.

wpf xaml textblock

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

如何获取WPF TextBlock以滚动Text属性异步设置的位置?

我有一个TextBlock,包含在a中ScrollViewer,并且使用Task的结果设置了Text属性TextBlock.TextBlock不会调整任务返回的文本大小的滚动条.

有任何想法吗?

<Grid>
   <Grid.ColumnDefinitions>
      <ColumnDefinition Width="500"/>
   </Grid.ColumnDefinitions>

   <ScrollViewer VerticalScrollBarVisibility="Auto" 
                 Height="177" 
                 Width="500" 
                 HorizontalScrollBarVisibility="Disabled">
      <TextBlock Height="177" 
                Text="Extracted Xml" 
                Width="504" 
                HorizontalAlignment="Stretch" 
                TextWrapping="Wrap" />
   </ScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)

.net c# wpf asynchronous textblock

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

使用wrap检测TextBlock中的换行符数量?

有没有办法检测文本块中的换行符数TextWrapping="Wrap"

我正在考虑使用非等宽字体.我需要这个,因为我正在创建一个新的,个性化的MessageBox窗口,它有一个大文本标题,动画,我的应用程序的徽标和我的应用程序的主题.

很明显,我需要根据正文消息的LineBreak数量来改变窗口的大小 - 类似于默认MessageBox窗口的行为方式.

c# wpf xaml textblock word-wrap

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

Multiline StringFormat中的换行符或回车符

所以我有以下几点:

<TextBlock.Text>
  <MultiBinding StringFormat="So and so will donate {0:C0}&#x0d;&#x0a;to {1}, bringing the&#x0d;&#x0a;total amount to {2:C0}.">
    <Binding Path="VisitorTotal" />
    <Binding Path="EventName" />
    <Binding Path="EventTotal" />
  </MultiBinding>
</TextBlock.Text>
Run Code Online (Sandbox Code Playgroud)

我试过&#x0d;&#x0a;,&#10;,\n,\\n,及其各种组合.什么都不会给我换行.这是怎么回事?

wpf xaml textblock multibinding

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

在Textblock中绑定运行导致WPF中的异常

我正试图将两个<Run>s 绑定在一个内部TextBlock,如下面的代码片段所示.但我得到了一个XamlParseException.

基本上我正在尝试实现这种格式:

CodeNum: LongDescription

如果下面的代码注定要失败,我还有其他选择吗?

<TextBlock>
    <Run FontWeight="Bold" Text="{Binding CodeNum}"/>
    <Run FontWeight="Bold" Text=": "/>
    <Run Text="{Binding LongDescription}"/>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml textblock

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