Ken*_*sen 5 c# wpf resources controltemplate
我如何在代码隐藏中形成我的构造函数以获取对下面 XAML 中 OuterBorder 控件的引用?
<Window Template="{DynamicResource WindowTemplate}">
<Window.Resources>
<ControlTemplate x:Key="WindowTemplate" TargetType="{x:Type Window}">
<AdornerDecorator>
<Border Name="OuterBorder" Background="Black" BorderBrush="Red" BorderThickness="1" CornerRadius="0">
<!-- Implementation here... -->
</Border>
</AdornerDecorator>
</ControlTemplate>
</Window.Resources>
</Window>
Run Code Online (Sandbox Code Playgroud)
两种可能的解决方案:
解决方案1
将 Loaded 事件放入 XAML
<Border Name="OuterBorder" Loaded="Border_Loaded" ...
Run Code Online (Sandbox Code Playgroud)
并在后面的代码中将其存储在私有字段中:
private Border border;
void Border_Loaded(object sender, RoutedEventArgs e)
{
this.border = (Border)sender;
}
Run Code Online (Sandbox Code Playgroud)
或者:
解决方案2
覆盖窗口的 OnApplyTemplate:
private Border border;
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
this.border = (Border) Template.FindName("OuterBorder", this);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2649 次 |
| 最近记录: |