Commit b73f3f8d authored by Rabbit's avatar Rabbit
Browse files

恢复Bug

parent 2a063ac9
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -27,8 +27,16 @@ namespace CountDownList.Class
    /// </summary>
    public class ListCore : ClassName
    {
        public VirtualizingStackPanel DoingPanel, WcPanel, CountPanel;
        public Expander DoingE, WcE, CountE;
        public StackPanel 
            DoingPanel, 
            WcPanel, 
            CountPanel;

        public Expander 
            DoingE, 
            WcE, 
            CountE;

        public FrameworkElement RootWindow;

        NotifyCore notifyCore = new();
@@ -36,9 +44,9 @@ namespace CountDownList.Class
        public bool IsOpen = true;
        public ListCore
        (
            VirtualizingStackPanel doingPanel,
            VirtualizingStackPanel wcPanel,
            VirtualizingStackPanel countPanel,
            StackPanel doingPanel,
            StackPanel wcPanel,
            StackPanel countPanel,
            Expander doingE,
            Expander wcE,
            Expander countE,
+74 −73
Original line number Diff line number Diff line
@@ -95,6 +95,16 @@ namespace CountDownList.Controls

        public void Dispose()
        {
            App.logFile.Info($"触发销毁ListLabel({Title})", className);

            IsStop = true;
            // 解除所有绑定
            BindingOperations.ClearAllBindings(this);

            // 解除事件处理程序
            this.Unloaded -= Button_Click;

            GC.Collect();
            GC.SuppressFinalize(this);
        }

@@ -171,39 +181,53 @@ namespace CountDownList.Controls

        public void SyncTime()
        {
            if (IsStop) return;

            string timeText;
            if (!IsStop)
            {
                if (IsCountMode)
                timeText = (DateTime.Now - StartTime).ToString(TimeFormat);
                {
                    //正计时
                    TimeText.Text = (StartTime - DateTime.Now).ToString(TimeFormat);
                    TimeTextFull.Text = (StartTime - DateTime.Now).ToString(TimeFormat);
                }
                else
                timeText = (EndTime - DateTime.Now).ToString(TimeFormat);

            Dispatcher.Invoke(() =>
                {
                TimeText.Text = timeText;
                TimeTextFull.Text = timeText;
            });
                    //倒计时
                    TimeText.Text = (EndTime - DateTime.Now).ToString(TimeFormat);
                    TimeTextFull.Text = (EndTime - DateTime.Now).ToString(TimeFormat);
                }
            }
        }

        public void SyncProgress()
        {
            if (IsStop) return;

            double progress;
            if (!IsStop)
            {
                if (IsCountMode)
                {
                progress = 0;
                Dispatcher.Invoke(() => ProgressBar.Visibility = Visibility.Collapsed);
                    ProgressBar.Visibility = Visibility.Collapsed;

                    ProgressText.Text = $"已经过去";
                    ProgressTextFull.Visibility = Visibility.Collapsed;
                }
                else
                {
                progress = (DateTime.Now - StartTime).TotalMilliseconds / (EndTime - StartTime).TotalMilliseconds;
                Dispatcher.Invoke(() =>
                    ProgressBar.Visibility = Visibility.Visible;
                    if (!((EndTime - DateTime.Now).TotalMilliseconds <= 0d))
                    {
                    ProgressRectangleGeometry.Rect = new Rect(0, 0, ActualWidth * progress, 6);
                    ProgressText.Text = $"{progress:P0}";
                });
                        Progress = ((EndTime - DateTime.Now).TotalMilliseconds / (EndTime - StartTime).TotalMilliseconds) * 100;
                        ProgressText.Text = $"{100 - Progress:F2}%";
                        ProgressTextFull.Text = $"{100 - Progress:F2}%";
                        ProgressRectangleGeometry.Rect = new(0, 0, (d.ActualWidth / 100) * (100 - Progress), 6);
                        ProgressTextFull.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        Progress = 0;
                        ProgressText.Text = $"已完成";
                        ProgressTextFull.Text = $"100%";
                        ProgressRectangleGeometry.Rect = new(0, 0, d.ActualWidth, 6);
                    }
                }
            }
        }

@@ -478,28 +502,5 @@ namespace CountDownList.Controls
            }
        }
#pragma warning restore CS8602 // 解引用可能出现空引用。


        public void BatchUpdate()
        {
            // 禁用布局计算
            this.BeginInit();

            SyncProgress();
            SyncTime();
            SyncTitle();

            // 恢复并触发单次布局
            this.EndInit();
        }









    }
}
+9 −13
Original line number Diff line number Diff line
@@ -134,29 +134,25 @@
                            <GradientStop Color="White" Offset="0.98"/>
                        </LinearGradientBrush>
                    </local:MyScrollViewer.OpacityMask>
                    <VirtualizingStackPanel
                            VirtualizingPanel.VirtualizationMode="Recycling"
                            VirtualizingPanel.IsVirtualizing="True"
                            VirtualizingPanel.CacheLength="2,2"
                    >
                    <StackPanel>
                        <Expander RenderOptions.ClearTypeHint="Enabled" x:Name="DoingE" Background="#00F7F7F7" BorderBrush="{x:Null}" IsExpanded="True" Header="进行中(5)" Margin="4,0,4,0" Foreground="#FFF7F7F7">
                            <VirtualizingStackPanel x:Name="doingList">
                            <StackPanel x:Name="doingList">
                                <!-- 进行中的倒计时项 -->
                            </VirtualizingStackPanel>
                            </StackPanel>
                        </Expander>
                        <Expander RenderOptions.ClearTypeHint="Enabled" x:Name="countE" Background="#00000000" BorderBrush="{x:Null}" Header="正计时(5)" Margin="4,0,4,0" Foreground="#FFF7F7F7" IsExpanded="True">
                            <VirtualizingStackPanel x:Name="count">
                            <StackPanel x:Name="count">
                                <!-- 正计时项 -->
                            </VirtualizingStackPanel>
                            </StackPanel>
                        </Expander>
                        <Expander RenderOptions.ClearTypeHint="Enabled" x:Name="wcE" Background="#00000000" BorderBrush="{x:Null}" Header="已完成(5)" Margin="4,0,4,0" Foreground="#FFF7F7F7">
                            <VirtualizingStackPanel x:Name="wancheng">
                            <StackPanel x:Name="wancheng">
                                <!-- 已完成的倒计时项 -->
                            </VirtualizingStackPanel>
                            </StackPanel>
                        </Expander>

                        <TextBlock x:Name="Version" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#7FF7F7F7" Margin="0,48,0,0">
            Count Down List V1.0
            Countdown List V1.0
                        </TextBlock>
                        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#7FF7F7F7">
            By shRabbit
@@ -164,7 +160,7 @@
                        <TextBlock x:Name="newVerisonTip" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#7FF7F7F7" Margin="0,0,0,48" Visibility="Hidden">
            <Hyperlink x:Name="newVerisonTipContent" Foreground="White"></Hyperlink>
                        </TextBlock>
                    </VirtualizingStackPanel>
                    </StackPanel>
                </local:MyScrollViewer>
            </Grid>
        </Border>