SPREADを拡大したい

文書番号 : 41388     文書種別 : 使用方法     登録日 : 2017/10/27     最終更新日 : 2018/06/18
文書を印刷する
対象製品
SPREAD for WPF 2.0J
詳細
◆タイトル
SPREADを拡大したい


◆詳細
SPREADコントロールを拡大するには、LayoutTransformプロパティに拡大率を指定したScaleTransformオブジェクトを設定します。

次のサンプルコードは、[Ctrl]キーを押しながらマウスをホイールしたときに拡大または縮小する例です。
なお、ここでは最小10%、最大400%の拡大率に設定しています。

XAMLコードでScalsTransformオブジェクトを追加します。

◎サンプルコード(XAML)
<sg:GcSpreadGrid x:Name="GcSpreadGrid1">
    <sg:GcSpreadGrid.LayoutTransform>
        <ScaleTransform CenterX="0" CenterY="0" x:Name="st"/>
    </sg:GcSpreadGrid.LayoutTransform>
</sg:GcSpreadGrid>


コードビハインドでPreviewMouseWheelイベントを実装します。

◎サンプルコード(VB)
Private Sub GcSpreadGrid1_PreviewMouseWheel(sender As Object, e As MouseWheelEventArgs) Handles GcSpreadGrid1.PreviewMouseWheel

    If (Keyboard.Modifiers And ModifierKeys.Control) > 0 Then
        Dim zoom As Double
        If e.Delta > 0 Then
            If st.ScaleX < 0.2 Then
                zoom = 0
            Else
                zoom = -0.1
            End If
        Else
            If st.ScaleX > 4 Then
                zoom = 0
            Else
                zoom = 0.1
            End If
        End If

        st.ScaleX += zoom
        st.ScaleY += zoom

    End If
End Sub


◎サンプルコード(C#)
private void gcSpreadGrid1_PreviewMouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
{
    if ((Keyboard.Modifiers & ModifierKeys.Control) > 0)
    {
        double zoom;
        if (e.Delta < 0)
        {
            zoom = st.ScaleX < 0.2 ? 0 : -0.1;
        }
        else
        {
            zoom = st.ScaleX > 4 ? 0 : 0.1;
        }

        st.ScaleX += zoom;
        st.ScaleY += zoom;
    }
}


以下は、スライダーコントロールを使用してSPREADを拡大する例です。

◎サンプルコード(XAML)
<sg:GcSpreadGrid x:Name="GcSpreadGrid1">
    <sg:GcSpreadGrid.LayoutTransform>
        <ScaleTransform ScaleX="{Binding ElementName=slider, Path=Value}" ScaleY="{Binding ElementName=slider, Path=Value}"/>
    </sg:GcSpreadGrid.LayoutTransform>
</sg:GcSpreadGrid>

<Slider x:Name="slider" Minimum="1" Maximum="5" Value="1" Width="200"/>


以下は、SPREADのフィルタウィンドウを拡大する例です。

◎サンプルコード(XAML)
<sg:GcSpreadGrid x:Name="gcSpreadGrid1" PreviewMouseWheel="gcSpreadGrid1_PreviewMouseWheel">
    <sg:GcSpreadGrid.LayoutTransform>
        <ScaleTransform x:Name="st"/>
    </sg:GcSpreadGrid.LayoutTransform>
    <sg:GcSpreadGrid.Resources>
        <Style TargetType="sg:FilterContextMenu">
            <Setter Property="LayoutTransform">
                <Setter.Value>
                    <ScaleTransform ScaleX="{Binding Source={x:Reference st}, Path=ScaleX}" ScaleY="{Binding Source={x:Reference st}, Path=ScaleY}"/>
                </Setter.Value>
            </Setter>
        </Style>
    </sg:GcSpreadGrid.Resources>
</sg:GcSpreadGrid>