2010-05-22 4 views
2

VerticalScrollBarVisibility fonctionne quand je le définir en ligne comme ceci:Pourquoi VerticalScrollBarVisibility ne fonctionne pas dans un style dans Silverlight?

<UserControl x:Class="TestScrollBar.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"> 
    <UserControl.Resources> 
     <Style TargetType="TextBox" x:Key="EditListContainerContentMultiLineTwoColumn"> 
      <Setter Property="AcceptsReturn" Value="True"/> 
      <Setter Property="Width" Value="400"/> 
      <Setter Property="Height" Value="300"/> 
      <Setter Property="IsReadOnly" Value="False"/> 
      <Setter Property="Margin" Value="0 0 0 20"/> 
      <Setter Property="HorizontalAlignment" Value="Left"/> 
      <Setter Property="TextWrapping" Value="Wrap" /> 
     </Style> 

    </UserControl.Resources> 
    <Grid x:Name="LayoutRoot" Background="White" Margin="10"> 
     <StackPanel HorizontalAlignment="Left"> 
      <TextBox Text="this is a test" 
        Style="{StaticResource EditListContainerContentMultiLineTwoColumn}" 
        VerticalScrollBarVisibility="Auto" 
        /> 
     </StackPanel> 
    </Grid> 
</UserControl> 

Mais quand je mets VerticalScrollBarVisibility dans un style, il me montre un écran vide:

<UserControl x:Class="TestScrollBar.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"> 
    <UserControl.Resources> 
     <Style TargetType="TextBox" x:Key="EditListContainerContentMultiLineTwoColumn"> 
      <Setter Property="VerticalScrollBarVisibility" Value="Auto"/> 
      <Setter Property="AcceptsReturn" Value="True"/> 
      <Setter Property="Width" Value="400"/> 
      <Setter Property="Height" Value="300"/> 
      <Setter Property="IsReadOnly" Value="False"/> 
      <Setter Property="Margin" Value="0 0 0 20"/> 
      <Setter Property="HorizontalAlignment" Value="Left"/> 
      <Setter Property="TextWrapping" Value="Wrap" /> 
     </Style> 

    </UserControl.Resources> 
    <Grid x:Name="LayoutRoot" Background="White" Margin="10"> 
     <StackPanel HorizontalAlignment="Left"> 
      <TextBox Text="this is a test" 
        Style="{StaticResource EditListContainerContentMultiLineTwoColumn}" 
        /> 
     </StackPanel> 
    </Grid> 
</UserControl> 

En WPF cela fonctionne fonctionne très bien.

Comment puis-je faire fonctionner VerticalScrollBarVisibility dans un style?

Répondre

4

Cela ne fonctionne pas car ces propriétés ne sont pas dépendantes et ne peuvent pas être appliquées avec style. Malheureusement, l'utilisation de la propriété jointe sur ScrollViewer ne fonctionne pas non plus, car ils ne sont pas liés au modèle par défaut. La seule chose que je peux penser de vous pouvez faire est de créer un comportement attaché qui définit les valeurs requises sur la zone de texte et l'applique à travers le style.

Questions connexes