TextBlock, текстовое значение текстового поля не показывает "-" char

В моем приложении wpf текстовое свойство textblock привязано к строковому свойству объекта. Значение свойства строки равно "ABC-XYZ2014-HHH".

Но ни текстовое поле, ни текстовое поле не показывают значение правильно. Значение отображается в текстовом блоке и текстовом поле как "ABC-XYZ2014-"

Я обнаружил, что Label интерпретирует "_" или "-" как клавишу ускорения, но я использую текстовое поле и текстовое поле. Но значение после второго "-" не отображается в текстовом блоке и текстовом поле. Я вижу правильное значение в MessageBox.

<UserControl x:Class="KaliteKontrol.PresentationLayer.Denetim"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:igEditors="http://infragistics.com/Editors"
         xmlns:ig="http://schemas.infragistics.com/xaml"
         xmlns:GridControlLib="clr-namespace:CommonLib.Utils;assembly=CommonLib"
         xmlns:commonLibUtils="clr-namespace:CommonLib.Utils;assembly=CommonLib"
         xmlns:igDP="http://infragistics.com/DataPresenter"
         xmlns:sys="clr-namespace:System;assembly=mscorlib"
         xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
    <BooleanToVisibilityConverter x:Key="BoolVisibilityConverter" />
    <Style TargetType="ContentPresenter">
        <Setter Property="RecognizesAccessKey" Value="False" />
    </Style>
</UserControl.Resources>
<ScrollViewer VerticalScrollBarVisibility="Visible">
    <StackPanel  x:Name="mainPanel" Style="{StaticResource ResourceKey=MainWindowsStyle}" >
        <Button>
            <TextBlock Text="{Binding Path=Denetim.DRef}" />
        </Button>
        <Button IsCancel="True"  >

                    <AccessText Margin="10,0,10,0" Text="{Binding Path=Denetim.DRef}"/>
        </Button>
        <TextBox Text="{Binding Path=Denetim.DRef}" Width="500"    />
        <TextBlock Text="{Binding Path=Denetim.DRef}" Width="800"    />
        <Label Content="{Binding Path=Denetim.DRef}"   />
  </StackPanel>
</ScrollViewer>
</UserControl>

Спасибо онур

1 ответ

Решение

Понятно, что конец текста в TextBlock становится отрезанным или скрытым чем-то. Вы можете проверить это, добавив новый TextBlock с тем же текстом в другом окне... вы увидите, что он работает сразу. Таким образом, единственный вопрос здесь - "что скрывает конец текста?"

Чтобы это выяснить, просто установите Background свойство окружающих элементов на различные цвета, пока вы не увидите что-то с одним из этих цветов в конце TextBlock, Затем вы узнаете, какой элемент скрывает конец текста.

Вы устанавливаете Width из TextBlock а также TextBox, но вы не установили его на StackPanel или же ScrollViewer, Я думаю, что ваш StackPanel вызывает проблему, потому что они не являются элементами управления, которые вы можете использовать, чтобы соответствовать размеру.

Другие вопросы по тегам