2010-03-12 10 views

Odpowiedz

8

Nie. Silverlight TextBlock nie obsługuje wyboru. Zamiast tego należy użyć TextBox w trybie tylko do odczytu. Aby uczynić użytkownika bardziej płynnym, można ustawić TextBox tak, aby miał normalny kursor strzałki zamiast dwuteownika.

+0

To właśnie czytam dalej. Miałem nadzieję, że ktoś był w stanie zrobić coś lepszego, używając zachowania lub czegoś. –

+0

@Gabriel Miałem takie same nadzieje, ale niestety nie możesz. TextBlock nie renderuje tekstu w taki sam sposób jak TextBox. –

+0

To zabija użyteczność. –

18

Później znalazłem rozwiązanie i chciałem się nim podzielić. Rozwiązanie można znaleźć here.

Wyciąg z tej strony:

... zmienić styl polu tekstowym za. Umieść następujący kod XAML w App.xaml lub innego zasobu:

<Style x:Key="TextBoxStyle" TargetType="TextBox"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="TextBox"> 
       <Grid x:Name="RootElement">  
        <ScrollViewer x:Name="ContentElement" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" BorderThickness="0"/>  
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Następnie ustaw styl Twojego tekstowym jako „{StaticResource TextBoxStyle}” i ustaw właściwość IsReadOnly jako prawdziwe, twój tekstowe będą wyglądać textblock ale można skopiować.

+0

Dzięki, działa idealnie! – Jage

+0

Link nie działa, a to jest rozwiązanie dla 'TextBox'. OP wyraźnie mówi "TextBlock" – Julien

+3

@Julien: Zaktualizowałem link. Jeśli spojrzysz, jestem OP. Zapytałem, i odpowiedziałem, że nie ma rzeczywistego rozwiązania blokowego. To była poprawna odpowiedź. Dlatego go zaakceptowałem. Znalazłem obejście i napisałem to tutaj. Obejście wykorzystuje pole tekstowe, zaprojektowane tak, aby wyglądało i funkcjonowało jak blok tekstu (poza tym, że pozwala użytkownikowi wybrać i skopiować tekst). –

Powiązane problemy