回答
一個解決辦法是到ComboBox
綁定到自我創造MediaTypeDefinition
類的列表。
public class MediaTypeDefinition
{
public string Name { get; set; }
public int Height { get; set; }
}
然後,您可以將SelectedItem
綁定到媒體元素的高度。
<ComboBox x:Name="mediaTypeList" ItemsSource="{Binding Definitions}" SelectedValuePath="Name" />
<MediaElement Height="{Binding SelectedItem.Height, Elementname=mediaTypeList}" />
謝謝,我會嘗試這個 – bilgestackoverflow 2012-04-12 07:33:51
您可以在MediaElement的Width
和Height
直接綁定到其Source
屬性用合適的轉換器,它選擇合適的大小取決於媒體類型:
<MediaElement
Width="{Binding Path=Source, RelativeSource={RelativeSource Self}, Converter={StaticResource MediaElementSizeConverter}, ConverterParameter=Width}"
Height="{Binding Path=Source, RelativeSource={RelativeSource Self}, Converter={StaticResource MediaElementSizeConverter}, ConverterParameter=Height}"/>
變換器:
public class MediaElementSizeConverter : IValueConverter
{
private const double defaultWidth = 320d;
private const double defaultHeight = 240d;
private const double wmvWidth = 640d;
private const double wmvHeight = 480d;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Uri source = value as Uri;
if (source != null)
{
if (source.AbsolutePath.EndsWith(".wmv"))
{
return (parameter as string) == "Width" ? wmvWidth : wmvHeight;
}
// more media types ...
}
return (parameter as string) == "Width" ? defaultWidth : defaultHeight;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
感謝的確,它似乎很有用。我會嘗試 – bilgestackoverflow 2012-04-12 10:26:43
當我應用您提供的解決方案時,我想問一個問題。轉換器工作,但源始終爲空。你能幫忙解決這個問題嗎?在此先感謝 – bilgestackoverflow 2012-04-12 12:05:18
你如何設置來源?我假設它綁定到組合框的SelectedItem。 – Clemens 2012-04-12 12:09:43
- 1. 根據組合框的選擇更改文本框的值
- 2. 根據選擇的框選擇元素
- 3. 根據從組合框B選擇的項目更改組合框列表B
- 4. 根據文檔中的書籤更改組合框選擇
- 5. 根據組合框中的選擇動態更改html標籤
- 6. 根據選擇的組合框項目更改標籤
- 7. 如何根據組合框選擇更改文本標籤?
- 8. 如何根據組合框選擇更改UI
- 9. 如何根據選定的選項更改選擇元素的寬度?
- 10. 組合框更改高度vb6?
- 11. 根據內容動態更改div元素的高度
- 12. 根據單選按鈕選擇的值更改複選框組合?
- 13. 根據值更改高度
- 14. 如何根據組合框選擇更改列表框的內容?
- 15. WPF組合框選擇更改TabItem選擇更改
- 16. 根據元素單擊更改選擇選項值
- 17. 根據組合框中選定的項目更改數據
- 18. Safari更改選擇高度
- 19. 根據父級選擇元素的id屬性更改選擇選項的值
- 20. 根據另一個JComboBox的選擇更改JComboBox的元素
- 21. SharePoint |根據相同的組合框狀態更改組合框選項
- 22. 更改選擇高光的高度
- 23. 根據選擇框的選擇顯示元素
- 24. 已選擇項目更改組合框
- 25. 根據RCP中的ComboBoxCellEditor選擇更改複選框選擇
- 26. 根據另一個組合框值更改組合框值?
- 27. 根據列表框中的選擇更改單元格值
- 28. 根據元素的高度添加類
- 29. 如何根據選擇的組合框值更改標籤文本?
- 30. 更改bootstrap-選擇元素寬度和刪除邊框
您是否想在MediaElement打開不同的Source時更改高度? – Clemens 2012-04-12 07:05:56
是的,但這個來源是從組合框中選擇 – bilgestackoverflow 2012-04-12 07:33:16