【问题标题】:Wpf/Silverlight gridview remove row blur effectWpf/Silverlight gridview 去除行模糊效果
【发布时间】:2014-08-08 10:51:07
【问题描述】:

删除第一行并作为最后一行再次添加。 那么,当您从 GridView 中删除一行时,如何对该行应用效果?

ObservableCollection<Work> perWorks = new ObservableCollection<Work>();
void Timer2_Click(object sender, EventArgs e)
    {
        #region ListBox Remove And Effect / in Process
        if (works.Count > 1)
        {
            Work workTemp = works[0];

            works.RemoveAt(0); 
            works.Add(workTemp);
            DataContext = this; // BindGrid
        }
    }

【问题讨论】:

  • 嗨,我不太确定你在这里要做什么,你能详细说明并发布你的 xaml 吗?为什么要在计时器委托中设置数据上下文,这样做的目的是什么?提示如果您想更改列表框的呈现方式(视觉表示),请将模板转储为 blend 或 code。
  • 你不需要xaml ..我只是想在删除行时制作效果..可以是模糊或不透明动画..
  • 有人想帮助你,我建议你对他们的问题采取行动,而不是告诉他们他们做什么和不需要什么。

标签: c# wpf silverlight gridview


【解决方案1】:

效果很难设置,你需要做。我认为在您的情况下, GridView 行是自动生成的。因此,当您修改 Datasource 时,行将相应更改。

删除数据源中的项目,很快就会退出。不可能在行删除或卸载时设置动画,因为它几乎会立即从列表中消失。 我建议做的是:

1- 按住要删除的行。 (在这种情况下更容易,因为没有循环)。

2- 根据需要在 xaml 或代码后面调用情节提要...

3- 等待 Storyboard.Completed 事件,然后调用works.RemoveAt(...)。

所以你将拥有:

void Timer2_Click(object sender, EventArgs e)
{
    #region ListBox Remove And Effect / in Process
    if (works.Count > 1)
    {
        //Work workTemp = works[0];  //Don't know if really needed
          var fade = new DoubleAnimation()
          {
             From = 1,
             To = 0,
             Duration = TimeSpan.FromSeconds(5),
          };
       var item = //TheListBox.Items[];
       Storyboard.SetTarget(fade, item);
       Storyboard.SetTargetProperty(fade,
                                    new PropertyPath(ListBoxItem.OpacityProperty));

       var sb = new Storyboard();
       sb.Children.Add(fade);
       sb.Completed += sb_Completed;
       sb.Begin(); 

    }
}


    void sb_Completed(object sender, EventArgs e)
    {
         works.RemoveAt(0); 
         //works.Add(workTemp);  //Don't know if really needed
         DataContext = this; // BindGrid --Is that correct to define the context each time you click ? :(
    }

让我知道它是否适合你。

【讨论】:

  • 不工作淡化效果。我认为问题是这些行.. var item = GridWaitCars.Items[0]; Storyboard.SetTarget(fade, (DependencyObject)item);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 1970-01-01
  • 2019-09-04
相关资源
最近更新 更多