使用Windows Phone 8,C#。
我所做的基本上是编辑了枢轴项目。我已将其命名为MainPivot
,并在其中编辑了数据透视项目标题,并在其中添加了一个名为TextBlock
的{{1}}。 XAML就是:
PivotTitletxt
如何访问此内容,例如设置不透明度或更改前景时?这样我就可以在我的主页上使用它,例如PivotTitletxt.Opacity = 30; ...
谢谢!
答案 0 :(得分:1)
链接@Sankarann给了你一个很好的例子。
我会试着把它放在你的场景中:
您的MainPivot有PivotItems吗?那么你在Loaded事件上要做的就是:
var _mainPivot = MainPivot as Pivot
foreach (var _pivotItem in _mainPivot.Items)
{
var _container = _mainPivot.ItemContainerGenerator.ContainerFromItem(_pivotItem);
var _children = AllChildren(_container)
var _name = "PivotTitletxt";
var _control = (TextBlock)_Children.first(x=>x.Name == _name);
_control.Opacity = 30;
}
然后完全按照站点中的方式复制AllChildren方法。
上面的代码,可能会有一些调整,因为我没有VS ...
希望它有所帮助。
此致
============新答案==============
Find all controls in WPF Window by type
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren<T>(child))
{
yield return childOfChild;
}
}
}
}
然后尝试:
TextBlock xx = FindVisualChildren<TextBlock>(mainPivot).FirsOrDefault(x=>x.name=="PivotTitletxt");
if(xx!=null)
xx.opacity = 30
再一次,这可能需要一些修正......我正在做这件事,没有VS.
试一试