Почему загруженное событие usercontrols не запускается - PullRequest
4 голосов
/ 08 июля 2011

У меня есть пользовательский элемент управления. Несколько раз я снова сталкивался с такой ситуацией, но всегда мог исправить ее, используя «New() contructor». Но мне все еще интересно, что я делаю не так, потому что событие загрузки должно запускаться, если элемент управления был загружен !

Вот код:

<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>

и в пользовательском контроле событие загрузки объявляется в WPF или кодешире без успеха! Usercontrol wpf

Usercontrol codebehind

Ответы [ 2 ]

10 голосов
/ 11 мая 2012

Это связано с тем, что в обработчике событий Loaded создается исключение.Исключение может возникать в результате сборки смешанного режима или какого-либо другого исключения, которое «обрабатывается пользователем», и инфраструктура WPF его перехватывает (неизвестно отладчику).Это приводит к тому, что отладчик не прерывается, если в методе Loaded установлена ​​точка останова.

Чтобы убедиться, что вы точно видите, какая ошибка возникает:

  1. В VS2010 перейдите к Debug |Исключения.
  2. Установите флажки «Брошенные» исключения для исключений, которые могут быть применимы в вашем случае.
  3. Перезапустите приложение, и VS2010 должен прерваться на исключении, которое выбрасывается вобработчик событий.
  4. Отладка в соответствии с известным теперь исключением.
3 голосов
/ 08 июля 2011

Ваш конструктор UserControl все еще выполняет вызов InitializeComponent(), без этого он не будет создавать свои визуальные эффекты, и событие Loaded может не срабатывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...