gpt4 book ai didi

c# - WPF C# 圆形进度条 WindowsFormsHost

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:03 25 4
gpt4 key购买 nike

所以我遇到了一个奇怪的错误...我按照一些步骤在我的 WPF C# 应用程序中创建了一个 CircularProgressBar。它在我的台式机上运行良好,但在我的笔记本电脑上运行不正常。

我创建了一个 WindowsFormsHost 并将 Circular Progress Bar 作为子对象。然后,我将其设为名为 ProgressGrid 的网格的子项。

无论如何,错误只是说“应用程序中的一个组件发生了未处理的异常。如果您单击继续,应用程序将忽略此错误”请注意,如果我单击继续,它会运行得很好。

错误详细信息显示“System.ArgumentException:参数无效”,它接着列出了我写的几乎所有内容。我认为它与 Dispose() 有关...这是代码:

        var SelectAll =
(from a in dc.GetTable<SR>()
select a).ToList();
int all = SelectAll .Count();

var ByGroup =
(from a in dc.GetTable<SR>()
where a.GroupID == GroupID
orderby a.ID
select a).ToList();
int SelectedGroup = ByGroup .Count();

System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost();


CircularProgressBar.CircularProgressBar ProgressCircle = new CircularProgressBar.CircularProgressBar();


host.Child = ProgressCircle;


ProgressGrid.Children.Add(host);

if (ShallMarquee == 1 || FilterByThisDivision == TheEmployee.Division)
{
ProgressCircle.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
}
else
{
ProgressCircle.Style = System.Windows.Forms.ProgressBarStyle.Blocks;
}

ProgressCircle.MarqueeAnimationSpeed = 4000;
ProgressCircle.Text = Convert.ToString(NumOf + "%");
ProgressCircle.SubscriptText = "";
ProgressCircle.SuperscriptText = "";
ProgressCircle.Font = new Font("Arial", 22);
ProgressCircle.ProgressWidth = 10;
ProgressCircle.SuperscriptColor = System.Drawing.Color.Black;
ProgressCircle.ProgressColor = System.Drawing.ColorTranslator.FromHtml(MainColor);
System.Windows.Media.Color StandardBackgroundBlue = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(BackgroundColor);
var drawingcolor = System.Drawing.Color.FromArgb(StandardBackgroundBlue.A, StandardBackgroundBlue.R, StandardBackgroundBlue.G, StandardBackgroundBlue.B);
ProgressCircle.BackColor = drawingcolor;
ProgressCircle.InnerColor = drawingcolor;
ProgressCircle.OuterColor = System.Drawing.Color.LightGray;

ProgressCircle.ForeColor = System.Drawing.Color.Black;
ProgressCircle.Value = NumOf;
ProgressCircle.Maximum = TotalNum;
//END CIRCLE

现在网格只显示一个字符串作为数字,而我调整了一些东西,所以你可以忽略它。我也读过一些关于 GDI 的东西,但我有点迷路了。

附言我应该注意到它还说“无效参数”,但它肯定不是。

附言我在 Windows 7 64 位上开发了这个。我的笔记本电脑是 Windows 10 64 位。但它也不适用于我兄弟的 Windows 7 64 位。如果这有帮助...

最佳答案

好的,所以我能够让它发挥作用。我不是“完全”确定为什么。我加载了包含 WindowsFormsHost 网格的网格,首先将可见性设置为 false,然后在加载后将其设置为 true。无论出于何种原因,它都是这样工作的。如果有人能想到为什么那会很棒。不过这种方法确实有效!

关于c# - WPF C# 圆形进度条 WindowsFormsHost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49868069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com