我有一个用户控件。我有时会再遇到这种情况,但可以通过使用“New()
构造函数”来解决这个问题。但我仍然想知道我做错了什么,因为如果加载了控件就必须触发加载事件!
以下是一些代码:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:OUTPUT___VideoContent"
Title="OUTPUT - VideoContent" Height="350" Width="525" Icon="/OUTPUT%20-%20VideoContent;component/Images/VideoContent.png">
<Grid x:Name="LayoutRoot">
<Grid x:Name="VideoGrid">
<my:ucVideoPresenter x:Name="VideoPresenter1"/>
<TextBlock x:Name="txtInfo" Visibility="Collapsed" />
</Grid>
</Grid>
</Window>
在usercontrol中,在WPF上声明load事件或代码发送没有任何成功!
答案 0 :(得分:10)
这是因为'Loaded'事件处理程序中抛出异常。由于混合模式程序集或“用户处理”的其他异常,并且WPF框架正在捕获它(调试器未知),可能会发生异常。这会导致调试器在Loaded方法中设置断点时不会中断。
确保您可以确切地看到正在发生的错误:
答案 1 :(得分:3)
你的UserControl构造函数是否仍然会调用InitializeComponent()
,如果没有这个,它将不会构建其视觉效果,并且Loaded
事件可能不会触发。