如何以编程方式将图像放入进度条(WPF)
Posted
技术标签:
【中文标题】如何以编程方式将图像放入进度条(WPF)【英文标题】:How to put an image in a progress bar programmatically (WPF) 【发布时间】:2015-11-26 16:45:16 【问题描述】:我是 WPF 的新手,我需要一些帮助,将图像放在我的进度条中(以编程方式)。
我发现了这个(并且有效):
<ProgressBar.Template>
<ControlTemplate>
<Grid>
<Image Name="PART_Track" Source="MyImage" Stretch="Fill"/>
<Rectangle Name="PART_Indicator" Fill="BlanchedAlmond" HorizontalAlignment="Left"/>
</Grid>
</ControlTemplate>
</ProgressBar.Template>
我只是需要一些帮助将 XAML 代码转换为 C# 代码。
【问题讨论】:
什么是正则码? @nvartak 我的意思是 C# 代码。我需要在 C# 中以编程方式从 XAML 代码中重现效果。我正在制作一个带有多个主题的自定义进度条(您可以通过右键单击进度条在运行时使用 ContextMenu 更改当前主题)并且我不想做很多样式。 【参考方案1】:这会让你开始:
FrameworkElementFactory grid = new FrameworkElementFactory(typeof(Grid));
FrameworkElementFactory image = new FrameworkElementFactory(typeof(Image));
image.Name = "PART_Track";
ImageSource source = new BitmapImage(...); // create it
image.SetValue(Image.SourceProperty, source);
image.SetValue(Image.StretchProperty, Stretch.Fill);
grid.AppendChild(image);
FrameworkElementFactory rectangle = new FrameworkElementFactory(typeof(Rectangle));
rectangle.Name = "PART_Indicator";
rectangle.SetValue(Rectangle.FillProperty, new SolidColorBrush(Colors.BlanchedAlmond));
rectangle.SetValue(Rectangle.HorizontalAlignmentProperty, HorizontalAlignment.Left);
grid.AppendChild(rectangle);
ControlTemplate ct = new ControlTemplate(typeof(ProgressBar));
ct.VisualTree = grid;
MyProgressBar1.Template = ct;
【讨论】:
以上是关于如何以编程方式将图像放入进度条(WPF)的主要内容,如果未能解决你的问题,请参考以下文章