Ответ Imbru выглядит действительно хорошим, но это не очень полезно, если вы работаете с блоками.
Вот что я сделал с вычислить скорость в метрах в секунду (м / с).
new LocationListener() {
private Location lastLocation = null;
private double calculatedSpeed = 0;
@Override
public synchronized void onLocationChanged(Location location) {
if (lastLocation != null) {
double elapsedTime = (location.getTime() - lastLocation.getTime()) / 1_000; // Convert milliseconds to seconds
calculatedSpeed = lastLocation.distanceTo(location) / elapsedTime;
}
this.lastLocation = location;
double speed = location.hasSpeed() ? location.getSpeed() : calculatedSpeed;
/* There you have it, a speed value in m/s */
. . .
}
. . .
}
Вы можете просто установить свойство Stretch
окна просмотра с помощью DataTrigger, например, на логическое свойство Autoscale
:
<Viewbox>
<Viewbox.Style>
<Style TargetType="Viewbox">
<Setter Property="Stretch" Value="None"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Autoscale}" Value="True">
<Setter Property="Stretch" Value="Uniform"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Viewbox.Style>
...
</Viewbox>