2011-07-29 76 views
10

Tôi có một TextBlock có chiều rộng nói 100. Khi độ dài văn bản là lớn, tôi muốn hiển thị các ký tự được chứa trong khối đó và một (.. .) bên cạnh văn bản để chỉ định người dùng có thêm văn bản cũng ở đó. Khi nhấp vào nút (...), toàn bộ văn bản sẽ được hiển thị trong cửa sổ bật lên riêng biệt.Hiển thị Dấu ba chấm (...) Nút Khi Văn bản Vượt quá phạm vi WPF

Vì vậy, tôi muốn cách nút động (...) sẽ được hiển thị bất cứ khi nào độ dài văn bản vượt quá kích thước của khối chữ. Vui lòng trả lời

Trả lời

1

Tôi tin rằng những gì bạn muốn là đặt TextTrimming property. Giải quyết nó thành WordElilipsis hoặc CharacterEllipsis sẽ cung cấp những gì bạn cần.

10

Đây không phải là chính xác những gì bạn muốn, nhưng đó là một ý tưởng tương tự và chỉ cần sử dụng các công cụ nướng-in:

<TextBlock MaxWidth="200" 
      Text="{Binding YourLongText}" 
      TextTrimming="WordEllipsis" 
      ToolTip="{Binding YourLongText}" /> 

Vì vậy, bạn có một TextBlock có chiều rộng tối đa, và khi văn bản có thể' t phù hợp với nó sẽ hiển thị một dấu chấm lửng ("..."). Di chuột qua TextBlock bằng chuột sẽ hiển thị toàn văn trong một ToolTip.

+0

Cảm ơn Matt đã trả lời. Nhưng tôi muốn hiển thị một nút tự động khi chiều dài văn bản vượt quá. Trong TextTrimming ... xuất hiện, nhưng tôi muốn một nút có nội dung ... sẽ xuất hiện. –

2

Chỉ cần trải qua các yêu cầu tương tự cho thêm ellipsis vào nút để thêm các giải pháp ở đây

<Style x:Key="editButton" TargetType="{x:Type Button}"> 
      <Setter Property="Background" Value="Transparent" />       
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type Button}"> 
         <Border Background="{TemplateBinding Background}"> 
          <ContentPresenter HorizontalAlignment="Left" VerticalAlignment="Center" > 
           <ContentPresenter.Resources> 
            <Style TargetType="TextBlock"> 
             <Setter Property="TextTrimming" Value="CharacterEllipsis"></Setter> 
            </Style> 
           </ContentPresenter.Resources> 
          </ContentPresenter> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="Transparent"/>      
       </Trigger> 
      </Style.Triggers> 
     </Style> 

Thông báo các nguồn lực trong người dẫn chương trình nội dung.

+0

Đối với những người khác như tôi: sử dụng ContentPresenter không ContentControl. – Vimes

Các vấn đề liên quan