Кажется, что, несмотря на утверждение документа о Content-Type
заголовках, является необязательным, они не являются. Как предложено в этой публикации SO и в этом выпуске github , добавление contentType
к аргументу опций getSignedUrl
решает проблему:
file.getSignedUrl({
action: 'read',
contentType: 'audio/wav',
expires: moment()
.add(10, 'minutes')
.format()
})
Убедитесь, что также включайте заголовок при запросе ресурса.
Пузыри события, пока это не обрабатывается...
, Так как Кнопка делает что-то Вашими щелчками мышью, она поглощает Ваше событие от нажатия мыши и превращает его в ClickEvent.
при использовании PreviewMouseDown Вы видите, что StackPanel сначала получает событие, прежде чем кнопка сделает.. События предварительного просмотра используют Туннель, вниз приближаются..
Как другие сказали, это - потому что MouseDown
событие обрабатывается Button
, прежде чем это сможет пузыриться далее. Вы видите это в Отражателе, в ButtonBase.OnMouseLeftButtonDown
:
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
if (this.ClickMode != ClickMode.Hover)
{
e.Handled = true;
// SNIP...
}
base.OnMouseLeftButtonDown(e);
}
Одно решение состоит в том, чтобы прислушаться MouseDown
событие и указать, что Вы не заботитесь, обрабатывается ли событие. Можно сделать это с AddHandler
метод. Это имеет булеву перегрузку, которая позволяет Вам прислушаться к событиям, которые уже обрабатываются.
, Если Вы делаете это где-нибудь вместо того, чтобы установить обработчик MouseDown в XAML:
TheStackPanel.AddHandler(MouseDownEvent, new MouseButtonEventHandler(TheStackPanel_MouseDown), true);
Вы получите весь MouseDown
события на TheStackPanel
, независимо от того, были ли они обработаны.
Кроме того, если Вы хотите, чтобы stackpanel получил событие, изменил stackpanel xaml на:
<StackPanel x:Name="TheStackPanel"
Background="Yellow"
Button.Click="TheStackPanel_MouseDown" />
и подпись события к:
private void TheStackPanel_MouseDown(object sender, RoutedEventArgs e)
В этом случае, stackpanel получит событие щелчка кнопки. Однако нажатие на сам stackpanel не запустит события, так как это слушает конкретно нажатие кнопки.
Это - потому что все сообщения получаются <ударяют> обработанный забастовка> Кнопкой и остановкой сообщений <забастовка> остановки сообщения забастовка> пузырящийся там. Ответ является правильным в тексте Вашего вопроса:
событие будет пузыриться (распространяют) визуальное дерево от исходного элемента , пока или это не было обработано , или это достигает корневого элемента.
РЕДАКТИРОВАНИЕ:
Edward Tanguay (OP) прокомментировал этот ответ, и я копирую его комментарий здесь, потому что это очень релевантно:
"Я не вижу, что кнопка IS, обрабатывающая событие, т.е. у Меня нет обработчика щелчков на кнопке, у меня ДЕЙСТВИТЕЛЬНО есть обработчик щелчков (MouseDown) на StackPanel, и следовательно я думал бы, что это будет пузыриться МИМО кнопки, так как кнопка не обрабатывает его и обрабатывается stackpanel, который делает, правильно?"
Вы правы. Кнопка не обрабатывает Событие mouseDown, потому что никакой обработчик, ха, не определил для него при том управлении.
, Но, тогда, MouseDown конкретен в некотором роде. По крайней мере, в Windows Forms это используется для инициирования действий как рисования и перетаскивания так, когда управление получает событие, это продолжает захватывать все последующие сообщения мыши, даже если Вы не определили обработчики для него. Это прерывание сделано, когда управление устанавливает свойство Capture на Истинный, и это эффективно мешает последующим событиям пузыриться. Свойство получения задержано ко Лжи Windows Forms, когда это получает Событие mouseUp.
я повторяюсь, это - способ, которым это работает в Windows Forms, можно хотеть перепроверить это, но, по моему скромному мнению, нет никакой причины, почему это должно отличаться для WPF.
Для ссылки: Se раздел "Windows Forms processing" в http://blogs.msdn.com/jfoscoding/archive/2005/07/28/444647.aspx (прокручивают немного вниз с середины страницы).
Примечание: См. мой комментарий к ответу Arcturu для ссылки на пузыре и туннелирующих последовательностях повышения событий.