小编Sub*_*ion的帖子

如何在WP7上实现相机应用程序风格的照片条?

我遇到了一些问题,创建了一个非常类似于相机应用程序中的照片条的效果.

我想要做的就是显示一行网格,每个网格都有与屏幕相同的尺寸(无论是纵向还是横向).我必须做一些hacky并创建依赖属性,网格宽度和高度属性绑定到这些属性以保持宽高比.

这很好用.但是当我为我的条带创建一个StackPanel并实现我的导航(或者只是使用z-index变换缩放)时,我发现我的StackPanel不能显示大于屏幕尺寸(它被裁剪为只有一个网格的大小) .我以为我找到了一篇描述这个问题的帖子,但我现在找不到了 - 如果您知道我正在考虑哪个帖子,或者您对此限制有更多了解,请发帖.

我发现的唯一解决方法是使用ScrollViewer,这绝对不是我想要的行为,但它允许StackPanel比屏幕宽.

我真正的问题是ScrollViewer的行为 - 因为我需要从网格跳到网格(就像照片条那样)而不是自由滚动,据我所知,Horizo​​ntalOffset不是一个可动画的属性.我可以通过每15毫秒调用ScrollToHorizo​​ntalOffset强制它动画,基本上手动实现我自己的缓动效果.这看起来像是一个巨大的黑客,而且行为非常微不足道(要么我每次都没有得到ManipulationCompleted事件 - 在每次滑动操作结束时 - 或者ScrollViewer的内置惯性物理干扰我的效果).

有没有人知道我遇到的问题的更好的解决方法,或者在Silverlight中获得相机照片条的体验的完全不同的方式?

我考虑过使用Pivot控件,但它并不是我想要的(如果我希望每个项目在下一个项目进入之前完全动画化,而不是看起来全部附加到一个条带上,那么应该有更少的约束实现这一目标的方法).更重要的是,条带只是我希望能够动态执行的众多效果之一.我想交替使用类似CoolIris的3D倾斜或FlipPad风格的翻页.我相信如果我能够很好地使我当前的设置工作,那么很容易实现这些其他效果(作为可变转换).致力于像Pivot这样的控制不会让我更接近这个愿景.

这是我的XAML:

<Grid x:Name="LayoutRoot" Background="Transparent" Height="{Binding RealHeight, ElementName=phoneApplicationPage}" Width="{Binding RealWidth, ElementName=phoneApplicationPage}" HorizontalAlignment="Left" VerticalAlignment="Top">
        <ScrollViewer x:Name="SlideScroller" VerticalScrollBarVisibility="Disabled" Height="{Binding RealHeight, ElementName=phoneApplicationPage}" Margin="0,0,0,-31" ScrollViewer.HorizontalScrollBarVisibility="Auto" HorizontalAlignment="Left" VerticalAlignment="Top">
            <StackPanel x:Name="SlidePanel" Orientation="Horizontal" Height="{Binding RealHeight, ElementName=phoneApplicationPage}" VerticalAlignment="Top" HorizontalAlignment="Left">    
                <Grid x:Name="Slide0" Margin="0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="{Binding RealWidth, ElementName=phoneApplicationPage}" Height="{Binding RealHeight, ElementName=phoneApplicationPage}" Background="#FFCCCCCC">
                    <Image x:Name="Photo0" Width="{Binding RealWidth, ElementName=phoneApplicationPage}" Height="{Binding RealHeight, ElementName=phoneApplicationPage}" VerticalAlignment="Top" HorizontalAlignment="Left" Stretch="UniformToFill"/>
                </Grid>
                <Grid x:Name="Slide1" Margin="0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="{Binding RealWidth, ElementName=phoneApplicationPage}" …
Run Code Online (Sandbox Code Playgroud)

silverlight layout xaml stackpanel windows-phone-7

10
推荐指数
1
解决办法
400
查看次数

为什么WP7 WebBrowser InvokeScript调用抛出错误:80020101?

这个错误似乎抛出了调用的javascript函数中出现的任何错误:

SystemException was unhandled    
An unknown error has occurred. Error: 80020101.
Run Code Online (Sandbox Code Playgroud)

我使用javascript作为web-app后端的接口,我有两个调用工作正常,从ajax调用加载和返回JSON,如下所示:

在Silverlight中:

MyBrowser.InvokeScript("getData", "/Me/Feed?numberOfResults=-1", "MyFeed");
Run Code Online (Sandbox Code Playgroud)

Javascript加载到WebBrowser中

function getData(url, context) {
    $.ajax({
        url: url,
        dataType: 'jsonp',
        success: function (result) {
            callback(result, context);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

但后来我想将数据发回服务器,我也在做同样的事情:

MyBrowser.InvokeScript("postData", "thedata", "CreatePost");

function postData(payload, context) {
    $.ajax({
        type: "POST",
        url: "/Post/Create?" + tz(),
        data: payload,
        dataType:"json",
        success:function (result) {
            callback(result, context);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

现在我得到了例外.

真正奇怪的是,我可以立即从脚本中调用该函数,并将其发布到后端就好了.

postData("sampledata", "PostTest");
Run Code Online (Sandbox Code Playgroud)

起初,似乎唯一的区别是一个是GET而另一个是POST,所以我将GET ajax调用复制到第二个调用(这发生在用户输入,第一个发生在加载时).结果是一样的(我得到了同样的错误).只要它们不包含ajax调用(它出现),我就可以从这个事件的javascript中获取其他命令.所以你可能会认为这是一个时间问题 - 所以我把调用移到了上面我调用其他正在工作的InvokeScripts的地方,它仍然不起作用(同样的例外).

我也试过在一个单独的线程上调用它,使用Dispatcher.BeginInvoke进行测量,没有骰子.

Dispatcher.BeginInvoke(() =>
{
    MyBrowser.InvokeScript("postData", "thedata", "CreatePost");
});
Run Code Online (Sandbox Code Playgroud)

我完全不知所措.似乎有一些一致性,因为如果呼叫失败,它每次都会失败,但我不知道有效的呼叫和失败的呼叫之间有什么区别.

任何人都可以告诉我我做错了什么,或者我不明白一起使用InvokeScript和Ajax?

谢谢! …

javascript ajax silverlight jquery windows-phone-7

9
推荐指数
2
解决办法
6797
查看次数

如何在Windows Phone键盘中获得提交按钮?

我希望白色箭头出现在我的文本输入框中,这样用户可以通过远离键盘或使用硬件后退按钮进行前进.

搜索字段在系统UI中执行此操作.我如何能?

这是我的代码XAML:

<TextBox x:Name="InputBox" InputScope="Text" AcceptsReturn="True" TextChanged="InputBox_TextChanged"/>
Run Code Online (Sandbox Code Playgroud)

CS:

void InputBox_TextChanged(object sender, KeyEventArgs e)
{
    // e does not have Key property for capturing enter - ??
}
Run Code Online (Sandbox Code Playgroud)

一个快速说明,我也尝试过将AcceptsReturn视为False.

c# keyboard silverlight input windows-phone-7

9
推荐指数
2
解决办法
4224
查看次数

Alexa找不到我的技能

我基于Alexa Skills Kit中提供的示例之一创建了我的Alexa Skill作为AWS Lambda Node.js应用程序.我按照所有说明操作:

  1. 我的Echo使用与AWS上的开发者帐户相同的帐户注册
  2. 我在亚马逊开发者控制台上配置了我的技能
  3. 我将应用程序ID从控制台放入我的应用程序代码中
  4. 我将我的代码上传到AWS Lambda服务(根据指示设置为N. Virginia)
  5. 我测试了我的服务,它返回了预期的JSON
  6. 我在开发人员控制台中输入了我的ARN作为端点
  7. 在控制台的下一步,它告诉我通过说"Alexa,问问HelloWorld"来测试Echo的技能.

当我这样做时,她回答说"与所请求的应用程序进行通信时出现问题." 在Echo应用程序中它说:

意外通信问题HelloWorld请求标识符:amzn1.echo-api.request.e2d17280-592a-474f-a6b1-d1a9d8ff816d与请求的应用程序通信时出现问题

我可以从我的AWS Lambda函数列表中看到没有请求到达服务.我重新启动了Echo.我给了它一个小时,以防它需要时间在某处传播,但它仍然给出相同的响应.

所以这是一个非常模糊的死胡同.有没有人碰到这个?任何想法尝试什么?

aws-lambda alexa-skill alexa-skills-kit

9
推荐指数
1
解决办法
4523
查看次数

使用 SwiftUI 教程代码出现错误“无法推断通用参数‘标签’”

我正在这里完成这个 SwiftUI 教程:https : //developer.apple.com/tutorials/swiftui/handling-user-input

在“在您的视图中采用模型对象”部分的第 3 步中,我在第 16 行的 Toggle 语句中收到此错误:“无法推断通用参数‘标签’。”

我的代码与教程中提供的代码相同:

import SwiftUI

struct LandmarkList: View {
    @EnvironmentObject var userData: UserData

    var body: some View {
        NavigationView {
            List {
                Toggle(isOn: $userData.showFavoritesOnly) {
                    Text("Favorites Only")
                }
                ForEach(userData.landmarkData) { landmark in
                    if !self.userData.showFavoritesOnly || landmark.isFavorite {
                        NavigationLink(destination: LandmarkDetail(landmark: landmark)) {
                            LandmarkRow(landmark: landmark)
                        }
                    }
                }
            }
            .navigationBarTitle(Text("Landmarks"))
        }
    }
}

struct LandmarkList_Previews: PreviewProvider {
    static var previews: some View {
        ForEach(["iPhone SE", "iPhone XS Max"], id: \.self) { …
Run Code Online (Sandbox Code Playgroud)

swiftui

7
推荐指数
1
解决办法
2091
查看次数

在WP7上注销Facebook C#SDK

我正在尝试添加一个注销功能,该功能在ApplicationBarMenuItem的click事件中调用,遵循此博客上的说明

这就是我的代码:

    var oauth = new FacebookOAuthClient();

    var logoutParameters = new Dictionary<string, object>
          {
              { "next", "http://www.facebook.com" }
          };

    var logoutUrl = oauth.GetLogoutUrl(logoutParameters);

    LayoutRoot.Children.Add(FacebookLoginBrowser);
    FacebookLoginBrowser.Navigate(new Uri(logoutUrl.AbsoluteUri, UriKind.Absolute));
Run Code Online (Sandbox Code Playgroud)

我期望这段代码会在Navigated事件完成时将用户从Facebook注销,然后显示参数中传递的任何URL(在本例中为facebook.com).然而,我所看到的是它总是加载" http://m.facebook.com/ ",无论传入什么,它都不会注销Facebook.我不关心它加载后的内容(这会很棒,但此时我只是希望它执行注销操作,以便用户可以在他们再次启动我的应用程序时退出并登录).我能成功注销用户的唯一方法是,如果他们了解页面何时加载,他们需要向下滚动,放大,并在页面底部手动点击"注销" - 这不是一个可接受的用户体验.

我还从该博客下载了示例代码,它大致相同.

我已经看过这个帖子,这个帖子和使用的URL非常接近oath.GetLogoutUrl(logoutParameters)返回的内容,但我尝试构造具有相同结果的确切URL:

var logoutUrl = new Uri("https://www.facebook.com/logout.php?next=http://www.facebook.com&access_token="+fbClient.AccessToken);
Run Code Online (Sandbox Code Playgroud)

这绝对是我的应用程序的船舶止动器,所以任何人可以提供的任何帮助或建议将非常感谢!

silverlight facebook logout windows-phone-7 facebook-c#-sdk

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

如何在WP7上获得几分钟的时区偏移?

我需要能够在几分钟内知道运行我的应用程序的设备的时区偏移量.例如,对于太平洋标准时间(我正在测试的地方),我需要得到int -480.例子(我不能从我现在的位置得到 - 但是为了让你知道我需要什么)在阿富汗我会得到270而英国就是我得到0的地方.

到目前为止我的最佳尝试都返回0,这是错误的值:

int timezoneOffsetInMinutes = (DateTime.Now.ToLocalTime() - DateTime.Now).Minutes// returns 0 instead of the expected -480
Run Code Online (Sandbox Code Playgroud)

int timezoneOffsetInMinutes = TimeZoneInfo.Utc.BaseUtcOffset.Minutes - TimeZoneInfo.Local.BaseUtcOffset.Minutes;// also returns 0, not -480
Run Code Online (Sandbox Code Playgroud)

我不确定这篇文章是否提出了同样的问题(因为没有给出示例偏移或示例代码),但是给出的一个答案肯定与我正在寻找的无关.

.net c# timezone datetime windows-phone-7

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

在Windows Phone上获取ScrollViewer的滚动事件

问题:在Windows Phone上获取ScrollViewer的滚动事件

我有一个像这样的scrollviewer:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ScrollViewer x:Name="MyScroller">
        <StackPanel>
            <!-- ... -->
        </StackPanel>
    </ScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)

我需要在MyScroller滚动时发生的事件:

// MyScroller.Scroll += // <-- "Scroll" event does not exist on ScrollViewer
MyScroller.MouseWheel += MyScroller_MouseWheel; // Does not fire on scroll
MyScroller.ManipulationDelta += MyScroller_ManipulationDelta; // Fires for pinch-zoom only
Run Code Online (Sandbox Code Playgroud)

events scroll scrollviewer windows-phone-7 windows-phone

5
推荐指数
2
解决办法
7115
查看次数