我的Ink Manager用户控件可以保存签名,但不能通过应用栏保存按钮

时间:2016-01-11 11:09:14

标签: c# xaml winrt-xaml

我是Win RT的新手,所以我使用MSDN参考进行签名控制,请参阅https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn792131.aspx 在此代码中,我可以通过用户控件中的保存按钮保存签名。但我想通过用户控件之外的应用栏中的“保存”按钮保存签名。 问题是我无法弄清楚如何将用户控件与canvass控件绑定到我需要保存签名的视图模型。 在我的ViewModel中,我使用Prism来保存数据;

public SurveyPageViewModel(INavigationService navigationService, ISurveyRepository surveyRepository, ILoggedOnUser loggedOnUser, IEventAggregator eventAggregator, IAppdispatcher appdispatcher, IAppState state)
{
    NavService = navigationService;
    SurvRepository = surveyRepository;
    CurrentLoggedOnUser = loggedOnUser;
    EventAgg = eventAggregator;
    AppDis = appdispatcher;
    State = state;

    CancelExitCommand = new DelegateCommand(DoCancelExit);
    SaveAndExitCommand = new DelegateCommand(DoSaveAndExit);
    SaveCommand = new DelegateCommand(DoSave);
}

在DoSave方法中,我尝试保存签名;

case AppQuestionType.Signature:
    var sign = this.Signature;
    sign.JobId = propertySurveyId;
    if (!string.IsNullOrEmpty(SignatureFullNameOfPerson))
    {
        SurveyPageViewModel spPageViewModel;
        //var surveyRepository = M.Survey.UILogic.Repositoriesolve(typeof(ISurveyRepository)) as ISurveyRepository;
        //spPageViewModel.AddSignatureFileEntry(propertySurveyId, 
        //this.SignatureFilename,
        //this.SignatureFullNameOfPerson);
    }

(注释掉的代码是我的尝试不起作用)。

用户控制如下:

<UserControl
    x:Class="M.Survey.UserControls.SignUserControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:M.Survey.UserControls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" 
    xmlns:templateSelectors="using:M.Survey.TemplateSelectors"
    xmlns:converters="using:M.Survey.Converters" 
    xmlns:canvas="using:Microsoft.Graphics.Canvas.UI.Xaml"
    xmlns:viewModels="using:M.Survey.UILogic.ViewModels" Width="348">

    <UserControl.Resources>

        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Themes/Styles.xaml" />
                <ResourceDictionary Source="/Themes/AllQuestionDataTemplates.xaml" />
                <ResourceDictionary Source="/Themes/DataTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>

            <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
            <converters:InverseBooleanConverter x:Key="InverseBooleanConverter" />
            <converters:InverseBooleanToVisibilityConverter x:Key="InverseBooleanToVisibilityConverter" />

            <templateSelectors:QuestionTemplateSelector x:Key="QuestionDisplay" Signature="{StaticResource Signature}" />
        </ResourceDictionary>

    </UserControl.Resources>
    <Grid >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="95*"/>
            <ColumnDefinition Width="79*"/>
        </Grid.ColumnDefinitions>

        <TextBox HorizontalAlignment="Left" Margin="54,21,0,247" TextWrapping="Wrap" Text="{Binding SignatureFullNameOfPerson, Mode=TwoWay}" Width="273" RequestedTheme="Dark" Grid.ColumnSpan="2">
            <TextBox.BorderBrush>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="Black" Offset="0"/>
                    <GradientStop Color="White" Offset="1"/>
                </LinearGradientBrush>
            </TextBox.BorderBrush>
        </TextBox>
        <Grid Margin="41,-9,-32,0" Grid.ColumnSpan="2">
            <Grid.RowDefinitions>
                <RowDefinition Height="154*"/>
                <RowDefinition Height="155*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="150*"/>
                <ColumnDefinition Width="157*"/>
                <ColumnDefinition Width="157*"/>
                <ColumnDefinition Width="157*"/>
            </Grid.ColumnDefinitions>
            <StackPanel Name="spHorizontal" Orientation="Horizontal" Margin="31,10,-24,10" Grid.ColumnSpan="2" Grid.RowSpan="2" >
                <viewModels:InkCanvas  
                    x:Name="icSignature"  Width="268" Background="#FF8A8A8A"  Loaded="IcSignature_OnLoaded" Margin="0,98,0,0"  />

            </StackPanel>

            <StackPanel Orientation="Horizontal" Margin="-33,165,65,-74" RenderTransformOrigin="0.5,0.5" Grid.RowSpan="1"  HorizontalAlignment="Right" Width="307" Grid.Row="1" Grid.ColumnSpan="4">
                <Button Content="Erase"      Width="135"  Margin="0,16,3,7" Click="erase_Click" Background="Black" Height="41"/>
                <Button Content="Save"      Width="163"  Margin="0,16,3,7" Background="Black" Click="Save_Click" Height="41" >

                </Button>
                <!--CommandParameter="{Binding ElementName=icSignature}" Command="{Binding SaveSignatureQuestionCommand}"-->
            </StackPanel>
        </Grid>
        <TextBlock HorizontalAlignment="Left" Margin="-140,21,0,0" TextWrapping="Wrap" Text="Name of person" VerticalAlignment="Top" Width="135" Height="48" FontSize="15" Foreground="#FF211C1C"/>
    </Grid>
</UserControl>

非常感谢

0 个答案:

没有答案
相关问题