C# 如何动态填充滑块并获取值
我在XAML中声明了一个滑块,希望根据用户的特定选择使用值填充该滑块。页面由几个名为PhotoThumbnail的UserControl项动态填充,这些项包含多个属性。一旦确定选择了哪个照片缩略图,我想向用户显示一个滑块来调整一些属性。我已经在XAML中声明了一个滑块,我正在尝试重复使用同一个滑块。根据用户的选择,滑块将填充不同的最小值和最大值,用户选择的最终值将应用于属性的某些设置。为了说明这一点,我有以下几点 XAML XAML.CSC# 如何动态填充滑块并获取值,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,我在XAML中声明了一个滑块,希望根据用户的特定选择使用值填充该滑块。页面由几个名为PhotoThumbnail的UserControl项动态填充,这些项包含多个属性。一旦确定选择了哪个照片缩略图,我想向用户显示一个滑块来调整一些属性。我已经在XAML中声明了一个滑块,我正在尝试重复使用同一个滑块。根据用户的选择,滑块将填充不同的最小值和最大值,用户选择的最终值将应用于属性的某些设置。为了说明这一点,我有以下几点 XAML XAML.CS void EditableEllipse_Tap(obj
void EditableEllipse_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
if (sender != null)
{
DependencyObject tappedElement = e.OriginalSource as UIElement;
// find parent UI element of type PhotoThumbnail
PhotoThumbnail i = this.FindParentOfType<PhotoThumbnail>(tappedElement);
if (i != null)
{
BuildControl(i);
}
p.IsOpen = true;
FilterPagePivot.IsHitTestVisible = false;
}
}
private void BuildControl(PhotoThumbnail p)
{
switch(p.NName)
{
case "1":
sl = new Slider
{
Minimum = 1,
Maximum = 256,
Visibility = System.Windows.Visibility.Visible
};
break;
case "2":
sl = new Slider
{
Minimum = 1,
Maximum = 10,
Visibility = System.Windows.Visibility.Visible
};
break;
...
}
}
主要是,XAML中的滑块不具有新定义的属性,也不可见。注意,我正在捕获滑块的ValueChanged事件中发生的更改。发布的代码创建滑块的新实例-您应该使用现有滑块实例,即:
switch(p.NName)
{
case "1":
sl.Minimum = 1;
sl.Maximum = 256;
sl.Visibility = System.Windows.Visibility.Visible;
break;
注意:我认为您应该将生成的XAML成员(您通过其x:Name属性(如sl)引用的成员)视为只读的 为什么不把所有这些东西都做成一个itemstemplate,用于一个基于itemscontrol的控件,比如itemscontrol、listbox、gridview等等。。。?听起来比这条路线容易多了。你介意再详细解释一下吗?我的视图的设置方式是,我有一个WrapPanel,该WrapPanel在加载的事件中动态填充照片缩略图项。这在数据透视项中。在Pivot下,但在同一个网格中,我定义了一个包含滑块的弹出窗口,一旦用户选择了一个项目,我想根据项目选择填充ListPicker,并允许用户使用滑块更改每个ThumbnailItem的唯一设置,这非常有效,但是我在第一次填充滑块时遇到了问题。默认值正在使用,设置滑块属性不会在代码中执行,并直接跳到ValueChanged事件。
switch(p.NName)
{
case "1":
sl.Minimum = 1;
sl.Maximum = 256;
sl.Visibility = System.Windows.Visibility.Visible;
break;