WPF中XAML加载后访问UIElement
|
我使用以下命令从文件的XAML加载中填充了“ 0”:
SBWindowContainerCanvas.Children.Clear();
StreamReader stringreader = new StreamReader(\"C:\\\\xaml\\\\xmltest.xaml\");
XmlReader xmlreader = XmlReader.Create(stringreader);
var mainborder = XamlReader.Load(xmlreader);
SBWindowContainerCanvas.Children.Add((Blacklight.Controls.ClippingBorder)mainborder);
边框包含许多子元素,包括一些用户控件。
XAML文件的部分代码段:
<av:ContentControl Name=\"VisScoreCC\" Width=\"417\" Height=\"228\" IsHitTestVisible=\"True\" av:Canvas.Left=\"855\" av:Canvas.Top=\"8\" av:Selector.IsSelected=\"False\">
<fsp:Scores3DigitControl Name=\"Vis3DigitScoreControl\" VisitorControl=\"True\" OperatorControl=\"True\" NumericValue=\"4\" UseGradientMainBG=\"False\" UseGradientNumberBG=\"False\" UseGradientLogoBG=\"False\" UseGradientTeamNameBG=\"False\" UseRadialMainBG=\"False\" UseRadialNumberBG=\"False\" UseRadialLogoBG=\"False\" UseRadialTeamNameBG=\"False\" UseImageStringMainBG=\"False|none|False|Tile|Top Left|1\" SolidColorMainBG=\"#FFD4D2D2\" SolidColorNumberBG=\"#FF000000\" SolidColorBannerBG=\"#FF000000\" FGColorNumbers=\"#FFFF0000\" FGColorTeamName=\"#FFFFFFFF\" FGColorBanner=\"#FFFFA500\" SolidColorImageLogoBG=\"#FF000000\" SolidColorTeamNameBG=\"#FF000000\" GradientMainBG=\"#FF000000|#FF808080|#FFFFFFFF\" GradientNumberBG=\"#FF000000|#FF808080|#FFFFFFFF\" GradientLogoBG=\"#FF000000|#FF808080|#FFFFFFFF\" GradientTeamNameBG=\"#FF000000|#FF808080|#FFFFFFFF\" GradientOffsetsMainBG=\"0|0.5|1\" GradientOffsetsNumbersBG=\"0|0.5|1\" GradientOffsetsLogoBG=\"0|0.5|1\" GradientOffsetsTeamNameBG=\"0|0.5|1\" LinearAngleMainBG=\"180\" LinearAngleNumberBG=\"180\" LinearAngleLogoBG=\"180\" LinearAngleTeamNameBG=\"180\" OffSegmentOpacity=\"0.1\" RoundRadiusNumbers=\"0\" RoundRadiusLogo=\"0\" RoundRadiusTeamName=\"0\" PosSizeStringNumbers=\"180|8|200|150\" PosSizeStringLogo=\"20|10|150|150\" PosSizeStringTeamName=\"25|165|360|60\" TeamNameFontString=\"Arial|40|True\" UseRightSideBanner=\"True\" Style=\"{av:DynamicResource Scores3DigitControlTemplate}\" Height=\"Auto\" Margin=\"0,0,0,0\" IsHitTestVisible=\"True\" />
</av:ContentControl>
<av:ContentControl Name=\"HomeScoreCC\" Width=\"417\" Height=\"228\" IsHitTestVisible=\"True\" av:Canvas.Left=\"11\" av:Canvas.Top=\"8\" av:Selector.IsSelected=\"False\">
<fsp:Scores3DigitControl Name=\"Home3DigitScoreControl\" VisitorControl=\"False\" OperatorControl=\"True\" NumericValue=\"4\" UseGradientMainBG=\"False\" UseGradientNumberBG=\"False\" UseGradientLogoBG=\"False\" UseGradientTeamNameBG=\"False\" UseRadialMainBG=\"False\" UseRadialNumberBG=\"False\" UseRadialLogoBG=\"False\" UseRadialTeamNameBG=\"False\" UseImageStringMainBG=\"False|none|False|Tile|Top Left|1\" TargetElementIndex=\"0\" SolidColorMainBG=\"#FFD4D2D2\" SolidColorNumberBG=\"#FF000000\" SolidColorBannerBG=\"#FF000000\" FGColorNumbers=\"#FFFF0000\" FGColorTeamName=\"#FFFFFFFF\" FGColorBanner=\"#FFFFA500\" SolidColorImageLogoBG=\"#FF000000\" SolidColorTeamNameBG=\"#FF000000\" GradientMainBG=\"#FF000000|#FF808080|#FFFFFFFF\" GradientNumberBG=\"#FF000000|#FF808080|#FFFFFFFF\" GradientLogoBG=\"#FF000000|#FF808080|#FFFFFFFF\" GradientTeamNameBG=\"#FF000000|#FF808080|#FFFFFFFF\" GradientOffsetsMainBG=\"0|0.5|1\" GradientOffsetsNumbersBG=\"0|0.5|1\" GradientOffsetsLogoBG=\"0|0.5|1\" GradientOffsetsTeamNameBG=\"0|0.5|1\" LinearAngleMainBG=\"180\" LinearAngleNumberBG=\"180\" LinearAngleLogoBG=\"180\" LinearAngleTeamNameBG=\"180\" OffSegmentOpacity=\"0.1\" RoundRadiusNumbers=\"0\" RoundRadiusLogo=\"0\" RoundRadiusTeamName=\"0\" PosSizeStringNumbers=\"35|8|200|150\" PosSizeStringLogo=\"250|10|150|150\" PosSizeStringTeamName=\"25|165|360|60\" TeamNameFontString=\"Arial|40|True\" UseRightSideBanner=\"False\" Style=\"{av:DynamicResource Scores3DigitControlTemplate}\" OverridesDefaultStyle=\"False\" Name=\"Home3DigitScoreControl\" Height=\"Auto\" IsHitTestVisible=\"True\" />
</av:ContentControl>
当我想通过代码隐藏访问控件时,实际上无法使用以下方法重新链接到元素:
Scores3DigitControl Vis3DigitScoreControlC = (Scores3DigitControl)SBWindowContainerCanvas.FindName(\"Vis3DigitScoreControl\");
if (Vis3DigitScoreControlC == null)
{
MessageBox.Show(\"Couldn\'t Find Vis\");
}
else
{
Vis3DigitScoreControlC.Visibility = Visibility.Hidden;
}
UI元素在屏幕上显示正常,但是我总是收到“无法找到Vis”消息。从到目前为止的所有内容来看,只要我的元素是画布中某个位置的孩子,使用FindName应该可以使用,对吗?我想念什么?
谢谢
没有找到相关结果
已邀请:
4 个回复
刷遍派戳
呕蹿尉
它应该返回给您所有您需要的对象。之后,您可以在foreach循环中选择一个。
撵穆
娠侈脚惮顽
(...)在这里起作用,因为它跨越了
边界。
与same8ѭ相同。 动态添加控件需要充分了解ѭ11。