Czy możliwe jest zezwolenie użytkownikowi na zaznaczenie tekstu w bloku tekstowym silverlight (a nie w polu tekstowym), tak jak na dowolnej stronie HTML?Jak wybrać tekst w bloku tekstowym silverlight 3.0
Odpowiedz
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.
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ć.
Dzięki, działa idealnie! – Jage
Link nie działa, a to jest rozwiązanie dla 'TextBox'. OP wyraźnie mówi "TextBlock" – Julien
@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). –
To właśnie czytam dalej. Miałem nadzieję, że ktoś był w stanie zrobić coś lepszego, używając zachowania lub czegoś. –
@Gabriel Miałem takie same nadzieje, ale niestety nie możesz. TextBlock nie renderuje tekstu w taki sam sposób jak TextBox. –
To zabija użyteczność. –