0

私はこのWPFスライダーを持っています:

<Slider Height="22" HorizontalAlignment="Left" Width="100" TickPlacement="BottomRight" AutoToolTipPlacement="BottomRight" TickFrequency="1" Minimum="10" Maximum="110" Value="{Binding Path=Zoom, Mode=TwoWay}" Ticks="100"/>

と私のc#コードの背後にあります

public object Zoom
{
    get { return _zoom.ToString() }
    set
    {
        try
        {
            string zoom = value.ToString().Replace(",", ".");
            if (zoom.EndsWith(" %"))
            {
                _zoom= System.Convert.ToInt32(System.Convert.ToInt64(zoom));
            }
            OnPropertyChanged("CurrentZoom");
        }
        catch (FormatException ex)
        {
            //TODO: =)
        }
    }
}

整数のみを_zoomに保存できるのはどうしてですか?10進数は必要ありません。

例えば:

ズームは「13,99999」です

_zoomは13(int)である必要があります

_zoom= System.Convert.ToInt32(System.Convert.ToInt64(zoom));

だから私はこのエラーを受け取ります:

値がInt32に対して大きすぎるか小さすぎました。

どうしたの?

4

2 に答える 2

0

これにより、Decimal値がドット/decimalの左側に戻ります。

指定された10進数の整数部分を計算します。

 Math.Truncate(zoom)

より詳しい情報

于 2012-05-08T08:37:56.377 に答える
0
_zoom = (int)Math.Round(System.Convert.ToDouble(zoom));
于 2012-05-14T10:30:32.893 に答える