小编Jon*_*N89的帖子

让Viewbox和ScrollViewer一起工作

我已经玩了地图,我用它ScrollViewer在地图上移动,我希望ViewBox一起使用它PinchManipulations来放大和缩小地图.到目前为止,我已经通过设置这样做ScrollViewerManipulation模式control,但是这给了我一个滞后,当我放大.有没有办法让这个ViewBoxScrollViewer更好地一起工作,从而避免滞后?我到目前为止的代码是:

ScrollViewer中:

<ScrollViewer Grid.Column ="0"  Width="768" Height="380" HorizontalScrollBarVisibility="Hidden">
    <Viewbox Stretch="None">
        <View:Map/>
    </Viewbox>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

PinchZoom:

<Grid x:Name="Map" Width="1271" Height="1381.5">

    <Grid.RenderTransform>
        <ScaleTransform ScaleX="{Binding Path=deltaZoom}" ScaleY="{Binding Path=deltaZoom}"/>
    </Grid.RenderTransform>

    <i:Interaction.Triggers>
        <i:EventTrigger EventName="ManipulationStarted">
            <cmd:EventToCommand Command="{Binding Path=ZoomStartedCommand}" PassEventArgsToCommand="True"/>
        </i:EventTrigger>

        <i:EventTrigger EventName="ManipulationDelta">
            <cmd:EventToCommand Command="{Binding Path=ZoomDeltaCommand}" PassEventArgsToCommand="True"/>
        </i:EventTrigger>

        <i:EventTrigger EventName="ManipulationCompleted">
            <cmd:EventToCommand Command="{Binding Path=ZoomCompletedCommand}" PassEventArgsToCommand="True"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>

</Grid>
Run Code Online (Sandbox Code Playgroud)

我使用捏缩放的代码:

public ICommand ZoomStartedCommand { get; set; }
public ICommand ZoomDeltaCommand { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# zoom scrollviewer visual-studio windows-phone-8

19
推荐指数
1
解决办法
2497
查看次数

在GitLab中从问题创建分支

我刚刚开始使用GitLab,并创建了一组问题,以便概述我的应用程序需要做什么.我想知道是否有可能从这些问题创建一个分支,这样分支和问题是相互关联的,类似于jira和来自atlassian的Stash?

issue-tracking branching-and-merging gitlab

15
推荐指数
2
解决办法
1万
查看次数

在Silverlight for Windows Phone 8中删除弹出窗口

我已经测试了我的应用程序的内存使用情况,突然看到内存出现峰值,当我加载弹出窗口时,在我尝试关闭它之后它似乎没有下降.

我从第一页cs文件(我离开的那个)添加弹出窗口:

Popup popup;

if (!SecondScreen.SecondScreenLoaded)
{
    Popup PopupTest = new Popup();
    PopupTest.IsOpen = true;
    LayoutRoot.Children.Add(PopupTest);
}
Run Code Online (Sandbox Code Playgroud)

当第二页完成后我希望删除弹出窗口,从而释放内存因此我不确定如何在c#中正确删除弹出窗口,有人可以告诉我这个吗?

c# silverlight popup windows-phone windows-phone-8

8
推荐指数
1
解决办法
474
查看次数

MVVM RelayCommand CanExecute

我正在实现一个带有execute和canExecute部分的RelayCommand.RelayCommand在没有canExecute部分的情况下工作,但是当我添加canExecute部分时,该命令会锁定按钮.只要CanExecute部分为true,RelayCommand仅检查是否可以执行按钮.一旦canExecute部分变为false,就不能再单击该按钮,即使它应该被按下.我如何确保每次点击按钮它控制是否可以执行,并且一旦无法执行它就不会永久锁定它?

RedoCommand = new RelayCommand(undoRedoController.Redo,undoRedoController.CanRedo);

   public bool CanRedo()
    {
        redoStack.Count();
        redoStack.Any();
        return redoStack.Any();
    }

    public void Redo()
    {
        if (redoStack.Count() <= 0) throw new InvalidOperationException();
        IUndoRedoCommand command = redoStack.Pop();
        undoStack.Push(command);
        command.Execute();
    }


 public class UndoRedoController
{
    private static UndoRedoController controller = new UndoRedoController();

    private readonly Stack<IUndoRedoCommand> undoStack = new Stack<IUndoRedoCommand>();
    private readonly Stack<IUndoRedoCommand> redoStack = new Stack<IUndoRedoCommand>();

    private UndoRedoController() { }

    public static UndoRedoController GetInstance() { return controller; }
Run Code Online (Sandbox Code Playgroud)

wpf relaycommand mvvm-light canexecute windows-phone-8

7
推荐指数
2
解决办法
2万
查看次数

在ViewportControl WP8中移动对象

我正在使用ViewportControl滚动并放大和缩小我的地图.在这张地图中,我有一个绿色的椭圆形,我希望它能够移动.以前我使用ScrollViewer设置ScrollViewer的manipulationMode来控制,从而使它能够移动我的椭圆.但是我找不到类似于ViewportControl的方法.那么有一种方法可以移动我的椭圆吗?

我到目前为止的代码是:

我在我的地图周围有我的ViewportControl的xaml部分

   <ViewportControl x:Name="ViewPortTestTest" Bounds="0,0,1271,1381.5" Height="480" Width="800" Canvas.ZIndex="1" Grid.Row="1">
        <ViewportControl.RenderTransform>
            <CompositeTransform x:Name="myTransformTest"/>
        </ViewportControl.RenderTransform>

        <View:Map x:Name="ZoomableContent" >
            <View:Map.RenderTransform>
                <CompositeTransform x:Name="myTransform" />
                <!-- ScaleX="{Binding Map.imageScale}" ScaleY="{Binding Map.imageScale}"/>-->
            </View:Map.RenderTransform>
        </View:Map>
    </ViewportControl>
Run Code Online (Sandbox Code Playgroud)

它是在我添加椭圆的地图中.我操纵椭圆的viewModel

public void ManStart(ManipulationStartedEventArgs e)
    {

        e.Handled = true;

        ViewportControl VP = FindParentOfType<ViewportControl>(ChampViewModelSel);


       }
    }

    public void ManDelta(ManipulationDeltaEventArgs e)
    {
        e.Handled = true;


        Point fingerPosition = e.DeltaManipulation.Translation;

        Temp.x = fingerPosition.X;
        Temp.y = fingerPosition.Y;

        }
    }
Run Code Online (Sandbox Code Playgroud)

其中Temp.x和Temp.y是椭圆的新位置.

c# wpf drag-and-drop viewport windows-phone-8

6
推荐指数
1
解决办法
741
查看次数

在 VS 2015 和 VS 2013 上运行同一段代码的问题

在 Visual Studio 2013 和 2015 中运行一段代码时,我得到两种不同的结果。在 Visual Studio 2015 上,我得到了一个 NullReference,在 2013 年它按应有的方式工作。此外,Visual Studio 2015 在 Windows 8.1 上的 Windows 10 和 2013 上运行。这段代码是:

private static T FindParentOfType<T>(DependencyObject o)
{
    dynamic parent = VisualTreeHelper.GetParent(o);
    return parent.GetType().IsAssignableFrom(typeof(T)) ? parent : FindParentOfType<T>(parent);
}
Run Code Online (Sandbox Code Playgroud)

代码是这样调用的:

Grid RiskGrid = FindParentOfType<Grid>(ChampViewModelSel);
Run Code Online (Sandbox Code Playgroud)

错误是Nullreference,当检查IsAssginableFrom,因为在VS2015找到一个帆布代替了在VS2013中找到的希望电网?

堆栈跟踪

  StackTrace  "   at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetOriginalTypeParameterType(Type t)\r\n   
    at Microsoft.CSharp.RuntimeBinder.SymbolTable.AreTypeParametersEquivalent(Type t1, Type t2)\r\n   
    at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadMethodTypeParameter(MethodSymbol parent, Type t)\r\n   
    at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType)\r\n   
    at Microsoft.CSharp.RuntimeBinder.SymbolTable.AddMethodToSymbolTable(MemberInfo member, AggregateSymbol callingAggregate, MethodKindEnum kind)\r\n   
    at Microsoft.CSharp.RuntimeBinder.SymbolTable.AddNamesInInheritanceHierarchy(String …
Run Code Online (Sandbox Code Playgroud)

c# windows visual-studio visual-studio-2013 visual-studio-2015

5
推荐指数
1
解决办法
418
查看次数