我有一个在XAML中声明的滑块,我希望根据用户的特定选择来填充值。一个页面是动态填充的,称为PhotoThumbnail的几个UserControl项目包含多个属性。一旦确定选择了哪个PhotoThumbnail,我想向用户显示一个滑块以调整某些属性。我已经在XAML中声明了单个滑块,并且我试图反复使用该滑块。根据用户的选择,滑块将填充不同的最小值和最大值,用户选择的最终值将应用于属性的某些设置。为了说明这一点,我有以下如何动态填充滑块并获得值
XAML
<Slider x:Name="sl" Visibility="Collapsed"/>
XAML.CS
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事件发生时的更改。
为什么不只是将所有这些东西放入一个项目控件的项目控件,如itemscontrol,listbox,gridview,其中一个...?听起来比这条路线容易得多。 – 2014-11-04 20:34:13
你介意更详细的解释吗?我的视图设置的方式是我有一个WrapPanel是动态的在Loaded事件中使用PhotoThumbnail项目填充。这是一个PivotItem。在Pivot下,但在同一个Grid中,我定义了一个包含Slider的Popup,并且一旦用户选择了一个项目,我想根据项目选择填充ListPicker,并允许用户使用滑块更改设置每个ThumbnailItem都是独一无二的 – Matthew 2014-11-05 13:35:22