0

Çalışmam için bunu denemekten vazgeçiyorum. Geçiş yapmayı ve biraz uğraşmayı öğrenmeye çalışıyorum. Temelde 2 satır içeren bir ızgaradan oluşan bir açılan kutu oluyorum. Üst satırda bir düğme tıklandığında, alt satırda tıklandığında dinamik olarak eklenen düğmelerin bir scrollviewer görüntüleniyor. Tıklandığında, alt ızgara sırası daraltılır.Görsel durum, wpf xaml'deki kaydırma görüntüleyiciden nasıl değiştirilir

Sorun, Click olayının kaydırma görüntüleyicisinin içinden ateş ettiği veya kapsamda veya bir şeyde görsel durumu bulamadığı yönündedir. Bu yüzden, Button11 tıklandığında SelectionMode düzgün çalışıyor, ancak bir öğe düğmesine tıkladığımda hiçbir şey olmuyor. düğmeleri Ben yönlendirilmiş tıklama etkinlik yangın hiçbir sorun yaratabilir çünkü

Kimliği kod arkasında bir çözüme açık olması, ama

ile hiç şans vardı kendi renk animasyonlar ve ateşleme olayları vb mükemmel scrollviewer işi olduğunu

İdeal olarak bunun özel bir kullanıcı denetimi olmasını istiyorum local:CustomComboBox gibi ekleyebilirim, ancak bu aşamada özel denetimlerde denetimlerin içinde denetimlere sahip olmak benim için karmaşıktır.

MyButton1 sadece basit düğme ancak renk geçişleri vb ile

Düğmeye ÇÖZÜLDÜ

<Window.Resources> 

    <Storyboard x:Key="sb1"> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetName="gridContent" Storyboard.TargetProperty="Height"> 
      <EasingDoubleKeyFrame KeyTime="0" Value="30" /> 
      <EasingDoubleKeyFrame KeyTime="0:0:1" Value="160" /> 
     </DoubleAnimationUsingKeyFrames> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetName="scrItems" Storyboard.TargetProperty="Height"> 
      <EasingDoubleKeyFrame KeyTime="0" Value="0" /> 
      <EasingDoubleKeyFrame KeyTime="0:0:1" Value="130" /> 
     </DoubleAnimationUsingKeyFrames> 
    </Storyboard> 
    <Storyboard x:Key="sb2"> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetName="gridContent" Storyboard.TargetProperty="Height"> 
      <EasingDoubleKeyFrame KeyTime="0" Value="160" /> 
      <EasingDoubleKeyFrame KeyTime="0:0:1" Value="30" /> 
     </DoubleAnimationUsingKeyFrames> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetName="scrItems" Storyboard.TargetProperty="Height"> 
      <EasingDoubleKeyFrame KeyTime="0" Value="130" /> 
      <EasingDoubleKeyFrame KeyTime="0:0:1" Value="0" /> 
     </DoubleAnimationUsingKeyFrames> 
    </Storyboard> 
</Window.Resources> 


<Grid Name="Grid1" Margin="0,22,0,0" RenderTransformOrigin="0.5,0.5"> 
     <Grid Name="gridContent" HorizontalAlignment="Left" Margin="187,74,0,0" VerticalAlignment="Top" Width="140" Height="30" RenderTransformOrigin="0.5,0.5"> 
     <VisualStateManager.VisualStateGroups> 
      <VisualStateGroup x:Name="VisualStateGroup"> 
       <VisualState x:Name="SelectionMode" Storyboard="{StaticResource sb1}" /> 
       <VisualState x:Name="HiddenMode" Storyboard="{StaticResource sb2}" /> 
      </VisualStateGroup> 
     </VisualStateManager.VisualStateGroups> 

     <Grid.RowDefinitions> 
       <RowDefinition Height="30"/> 
       <RowDefinition Height="Auto"/> 
      </Grid.RowDefinitions> 


     <local1:Button1 Name="Button11" Content="Click" Height="30" Grid.Row="0" Margin="0,0,0,30"> 
       <i:Interaction.Triggers> 
        <i:EventTrigger EventName="Click"> 
         <ei:GoToStateAction TargetName="gridContent" StateName="SelectionMode" /> 
        </i:EventTrigger> 
       </i:Interaction.Triggers> 
      </local1:Button1> 
     <ScrollViewer Name="scrItems" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden" Margin="0" Width="140" Height="0" Grid.Row="1"> 

      <ItemsControl x:Name="stkItems"> 

        <ItemsControl.ItemsPanel> 
         <ItemsPanelTemplate> 
          <StackPanel Orientation="Vertical"/> 
         </ItemsPanelTemplate> 
        </ItemsControl.ItemsPanel> 
        <ItemsControl.ItemTemplate> 
         <DataTemplate> 

         <local1:Button1 Content="Click" Height="30"> 
          <i:Interaction.Triggers> 
           <i:EventTrigger EventName="Click"> 

            <ei:GoToStateAction TargetName="gridContent" StateName="HiddenMode" /> 
           </i:EventTrigger> 
          </i:Interaction.Triggers> 
         </local1:Button1> 
        </DataTemplate> 

        </ItemsControl.ItemTemplate> 
       </ItemsControl> 
      </ScrollViewer> 
     </Grid> 
</Grid> 




private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     lstItems = new ObservableCollection<MyButton.Button1>(); 
     for (int i = 0; i <= 999; i++) 
     { 
      MyButton.Button1 item1 = new Button1(); 
      item1.Content = "Item " + i; 
      item1.Width = stkItems.Width; 
      item1.Height = 30; 
      //item1.Click += new RoutedEventHandler(Button_Item_Click); 
      lstItems.Add(item1); 
     } 
     stkItems.DataContext = this.stkItems; 
     stkItems.ItemsSource = lstItems; 
    } 

cevap

0

tıkladığınızda İstisna yok/hatalar sadece hiçbir şey olmuyor !!!

Ben kök elemana visualStateManager taşındı - Grid1, ama bu

private void Button_Item_Click(object sender, RoutedEventArgs e) 
    { 
     bool g = ExtendedVisualStateManager.GoToElementState(this.Grid1 as FrameworkElement, "HiddenMode", true); 
    } 
etkiliyorsa bilmiyorum