После этого сообщения: Как я могу привязать источник MediaCapture использовать CaptureElement с помощью Caliburn.Micro? Я попытался создать собственное приложение для захвата фотографий Windows Phone 8.1 WinRT. Но даже если я установил горизонтальное и вертикальное выравнивание содержимого ContentControl на растяжение, мой CaptureElement будет очень маленьким (около 100 пикселей/80 пикселей).
Вот мой xaml
<Grid Margin="0,20,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ContentControl Content="{Binding CaptureElement}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,20" Grid.Row="0"
HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
Visibility="{Binding IsInCaptureMode, Converter={StaticResource BoolToVisibilityConverter}}"/>
<Button Grid.Row="1" Content="Take" Command="{Binding TakePhotoCommand}"
Visibility="{Binding IsInCaptureMode, Converter={StaticResource BoolToVisibilityConverter}}"/>
</Grid>
А вот моя ViewModel
public MediaCapture MediaCapture
{
get
{
return this.mediaCapture;
}
set
{
this.mediaCapture = value;
this.RaisePropertyChanged(() => this.MediaCapture);
}
}
public CaptureElement CaptureElement
{
get
{
return this.captureElement;
}
set
{
this.captureElement = value;
this.RaisePropertyChanged(() => this.CaptureElement);
}
}
private async void ConfigureMediaCapture()
{
this.MediaCapture = new MediaCapture();
await this.MediaCapture.InitializeAsync();
this.MediaCapture.SetPreviewRotation(VideoRotation.Clockwise90Degrees);
this.CaptureElement.Source = MediaCapture;
this.IsInCaptureMode = false;
}
Когда я пытаюсь изменить свойства CaptureElement, как показано ниже, верхняя часть CaptureElement похожа на экран моего устройства, так что все в порядке, но ширина по-прежнему составляет около 80–100 пикселей.
this.CaptureElement = new CaptureElement
{
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Stretch,
Stretch = Stretch.Fill,
};
Когда я устанавливаю кнопку или другой элемент управления в ContentControl, все в порядке. Кнопка имеет ширину и высоту всего экрана, а CaptureElement — нет. Может ли кто-нибудь сказать мне, что здесь не так, или, может быть, что еще я должен установить, чтобы изменить ширину CaptureElement.