小编Ste*_*TNT的帖子

XAML UserControl继承

来自Java,我真的习惯于制作GUI组件的常用做法:我通常会做一些基类,它包含GUI组件的所有常用对象,然后我扩展它.

所以,基本上,这是我想用C#和XAML实现的.

为了使问题清楚,这是我正在做的一个例子(那是行不通的!):

我们有一个拥有自己的XAML的基类

<UserControl x:Class="BaseClass"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    d:DesignHeight="480" d:DesignWidth="480">

    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
        <Border BorderBrush="Aqua" BorderThickness="10" CornerRadius="10" x:Name="Border" HorizontalAlignment="Left" Height="480" VerticalAlignment="Top" Width="480"/>

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

然后我们有一个扩展第一个类的类

<base:BaseClass x:Class="DerivedClass"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:base="clr-namespace:BaseClass"
    mc:Ignorable="d"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    d:DesignHeight="60" d:DesignWidth="200">

    <Grid x:Name="LayoutRoot" Margin="0" Width="200" Height="60" MaxWidth="200" MaxHeight="60" Background="{StaticResource PhoneAccentBrush}">        
        <TextBlock x:Name="dummyText" HorizontalAlignment="Left" Margin="10,10,0,0" TextWrapping="Wrap" Text="Dummy Plugin" VerticalAlignment="Top" Height="40" Width="180" Foreground="White" TextAlignment="Center"/>
    </Grid>
</base:BaseClass>
Run Code Online (Sandbox Code Playgroud)

从2个XAML代码开始,我想要做的就是DerivedClass进入BaseClass容器.这将允许我在各种派生类之间共享组件,而不必在每次需要时编写代码.

例如,如果我希望我的所有组件都有这个圆形边框,我想把它放在bass类中,然后将它放在所有派生类中,而不必重写它. …

c# wpf inheritance xaml windows-phone-8

24
推荐指数
1
解决办法
3万
查看次数

CDI @Named bean中的ManagedProperty返回null

我正在尝试处理@ManagedProperty但没有成功!

我一直在关注这个指南,看起来并不难.但我的代码根本行不通!

这是一个小片段

@ManagedBean
@SessionScoped
public class LoginBean {

@EJB
private LoginUserLocal loginUser;
private boolean loggedIn = false;
private User user;
private StreamedContent image;
.
.
.
//--
@Named(value = "messagesBean")
@RequestScoped
public class MessagesBean {

@ManagedProperty(value = "#{loginBean}")
private LoginBean loginBean;

public LoginBean getLoginBean() {
    return loginBean;
}

public void setLoginBean(LoginBean loginBean) {
    this.loginBean = loginBean;
}

public String getUser() {
    System.err.println(loginBean == null);
    return loginBean.getUser().getUsername();
}
Run Code Online (Sandbox Code Playgroud)

这段代码给了我一个NullPointerException,说loginBean为null!

有什么建议吗?

jsf ejb cdi managed-bean jboss-weld

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

使用有状态会话Bean来跟踪用户的会话

这是我的第一个问题,我希望我做得对.

我需要处理一个Java EE项目,因此,在开始之前,我正在尝试做一些简单的事情,看看我能做到这一点.

我被Stateful Session Beans困住了.

这是一个问题:如何使用SFSB跟踪用户的会话?我看到的所有情况,"把"的最终SFSBHttpSession的属性.但我不明白为什么!我的意思是,如果bean是STATEFUL,为什么我必须使用HttpSession来保存它?

EJB容器的任务不是将正确的SFSB返回给客户端吗?

我试过一个简单的计数器豆.在不使用会话的情况下,两个不同的浏览器具有相同的计数器bean(单击"增量"会更改它们的值).使用会话,我有两个不同的值,每个值对应每个浏览器(点击Firefox上的"增量",只添加一个到Firefox的bean).

但我的老师告诉SFSB保持"与客户的会话状态",那么为什么它不能在不使用HttpSession的情况下工作呢?

如果我理解正确的,不使用HttpSession中SFSB同样用做它的SLSB呢?

我希望我的问题很明确,而且我的英语不是那么差!

编辑:我正在使用登录系统.一切顺利,完成登录后,我会看到一个显示用户数据的个人资料页面.但重新加载页面会使我的数据消失!我尝试在记录时添加HttpSession,但这样做会使数据在注销后保持不变!

session ejb stateful javabeans httpsession

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

在声音仍在播放时,在Windows Phone 8上使用XNA进行音频循环

我需要一种在声音仍在播放时启动/停止循环的方法.我发现一起播放多种声音的最佳方法是使用XNA.所以我SoundEffectInstanceSoundEffect包含音频剪辑的对象开始创建.现在问题是我有一个按钮,应该将此剪辑的状态从"循环"更改为"非循环",反之亦然.

这是问题:它抛出一个异常,说必须在第一次播放之前设置循环.所以我认为,在从"非循环"切换到"循环"时,我可以等待声音停止,然后重新创建SoundEngineInstance,设置IsLooped = true并再次启动.这个有效,但有一些延迟,这会让你失去你的时间,所以这是无用的.

我正在寻找的是一种在播放声音时设置或取消设置循环的方法,没有任何延迟.

编辑:

我尝试使用两个SoundEngineInstance,一个循环,一个不循环,只需使用音量切换它们.问题是非循环播放只是在第一次播放后停止,所以如果我将它循环两次然后我将其置于非循环状态,则不播放声音,因为非循环剪辑已经结束!

建议?

c# audio xna visual-studio-2012 windows-phone-8

11
推荐指数
1
解决办法
1272
查看次数

在Composite结构上使用Interpreter模式

我被要求使用Composite,Recursive Descendent ParserInterpreter创建表达式求值程序.

这是语法:

<cond> ? <termb> [OR <termb>]*
<termb>?<factb>[AND <factb>]*
<factb>?<expr> RELOP <expr> | NOT <factb> | OPAR <cond> CPAR
<expr> ? [PLUS | MINUS] <term> [(PLUS <term>) | (MINUS <term>)]*
<term> ? <termp> [(MULT <termp>) | (DIV <termp>) | (REM <termp>)]*
<termp> ? <fact> [POWER <fact>]*
<fact> ? ID | NUM | OPAR1 <expr> CPAR1
----TERMINALS----
ID ? ("A" | ... | "Z" | "a" | ...| "z") …
Run Code Online (Sandbox Code Playgroud)

java design-patterns composite interpreter-pattern

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

Windows Universal响应式设计重新定位

所以,我刚刚开始使用Windows应用程序,有一些我无法按照自己的意愿工作(可能是因为我找不到任何样本,而且Channel9视频没有覆盖我的情况).

这篇文章开始,我决定"重新定位"技术是适合我的app从大屏幕移动到较小屏幕的技术.

我所做的是使用a StackPanel并使用两个AdaptiveTriggers 改变其方向(一个用于0宽度,另一个用于720,基于此处的表格).

这种方式有效,但我会用一些丑陋的油漆编辑截图来说明一些问题.

这就是当我处于这种BigScreen情况时会发生的情况,那里有足够的空间让A和B同时在同一行上.这里的问题是B应该占据剩余的全部宽度,覆盖所有蓝色部分.

大屏幕

第二个问题与调整大小有关.当没有足够的空间时,绿色部分会被切割而不是调整大小(您可以看到右侧边框消失).在使用StackPanel布局响应之前没有发生这种情况.

HalfScreen

最后,当我们处于这种SmallScreen情况时,方向变为垂直方向,我们遇到与第一个相同的问题:绿色部分的高度不会填满屏幕.

SmallScreen

这是XAML用于页面的:

<Page
    x:Class="Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:WifiAnalyzerFinal.Views"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:mvvm="using:Mvvm"
    mc:Ignorable="d">        

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="SmallScreen">
            <VisualState>
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="0"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="StackPanel.Orientation" 
                            Value="Vertical"/>
                </VisualState.Setters>
            </VisualState>
            </VisualStateGroup>
            <VisualStateGroup x:Name="BigScreen">
            <VisualState>
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="720"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="StackPanel.Orientation" 
                            Value="Horizontal"/>
                    <Setter Target="Rect.Width" 
                            Value="200"/>
                        <Setter Target="Rect.Height" 
                            Value="Auto"/>
                    </VisualState.Setters>
            </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <StackPanel Orientation="Vertical"
                    Background="Blue"
                    x:Name="StackPanel">
            <Rectangle Fill="Red" 
                       Height="50" …
Run Code Online (Sandbox Code Playgroud)

xaml win-universal-app windows-10 windows-10-mobile

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

使用Repast Simphony的意外结果

我需要使用Repast Simphony作为模拟器开发Java版本的Iterated Prisoner Dilemma.

这些想法是每个人Player都是一个代理人,我们有一个无法移动的n x n网格Player.每个人Player必须与4个邻居(北部,南部,西部和东部)进行比赛,根据每轮比赛的4个不同比赛的结果找到最佳策略.

由于没有内置系统在Repast Simphony中的代理之间交换消息,我必须实施某种解决方法来处理代理的同步(A vs B和B vs A应该算作同一轮,这就是他们需要的原因要同步).

这是通过将每一轮视为:

  • Player 为4个敌人中的每一个选择了下一步行动
  • Player 向4个敌人中的每一个发送正确的动作
  • Player 等待4个敌人中的每一个回复

根据我对Repast Simphony的理解,预定的方法是顺序的(没有代理级并行),这意味着我被迫以与发送方式不同的方式进行等待(以较低的pritority安排以确保完成所有发送)在开始等待之前).

这里的问题是,尽管收到了所有4条预期的消息(至少这是打印的内容),一旦等待方法启动它报告的接收元素少于4个.

这是从Player课程中获取的代码:

// myPoint is the location inside the grid (unique, agents can't move and only one per cell is allowed)
public int hashCode() {
    final int prime = 31;
    int result = …
Run Code Online (Sandbox Code Playgroud)

java repast-simphony

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

BitmapImage的ImageOpened事件未在后台代理中触发

与标题中一样,当代码执行BackgroundAgent时,当我在主应用程序中执行代码时,它不会被触发.

这是我的代码:

var background = new BitmapImage(new Uri(uri), UriKind.Absolute)){ CreateOptions = BitmapCreateOptions.None };
background.ImageFailed += (s, e) =>
{
    Debug.WriteLine(e);
    // Nothing happens here so I guess that there's no error in the image loading
};
background.ImageOpened += (s, e) =>
{
    Debug.WriteLine("ImageOpened");
    // This line is never printed no the event is never thrown
};
Run Code Online (Sandbox Code Playgroud)

Everthing正在一个Dispatcher线程中运行,我正在尝试加载远程图像(我无法缓存它,因为它是由php页面生成的动态图像).

任何提示?

编辑:

这是基于@ l3arnon建议的代码:

var backgroundImage = new BitmapImage { CreateOptions = BitmapCreateOptions.None };
backgroundImage.ImageOpened += (s, …
Run Code Online (Sandbox Code Playgroud)

c# events background-agents windows-phone-8

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

学习Prolog:解决填字游戏计划

我正在尝试学习网站Prolog上的教程,我找不到练习的解决方案(并且网站上没有解决方案).

这就是我要做的事情:

这里有六个意大利语单词:

astante,astoria,baratto,cobalto,pistola,statale.

它们将被安排,填字游戏时尚,在以下网格中:

方案

以下知识库代表包含以下单词的词典:

  • 字(astante,a,s,t,a,n,t,e).
  • 单词(astoria,a,s,t,o,r,i,a).
  • 字(baratto,b,a,r,a,t,t,o).
  • 单词(cobalto,c,o,b,a,l,t,o).
  • 字(pistola,p,i,s,t,o,l,a).
  • 字(statale,s,t,a,t,a,l,e).

写一个谓词填字游戏/ 6告诉我们如何填写网格.前三个参数应该是从左到右的垂直单词,最后三个参数是从上到下的水平单词.

现在,同样的问题已被问到,但每个给定的解决方案使用我不知道的东西(我不应该知道解决这个问题).

为了澄清,虽然链接问题中的内容确实有效,但他们使用的内容尚未在我所遵循的指南中解释,这意味着我需要在使用那种东西的情况下解决练习,所以没有maplist和那样的事情.

我的想法是用给定单词中的字母填充董事会,但有一些限制:

  • V1中的单词必须具有H1中单词的第二个字符作为其第二个字符
  • V1中的单词必须具有H2中单词的第二个字符作为其第四个字符
  • V1中的单词必须具有H3中单词的第二个字符作为其第六个字符

等等..

所以这是我的代码:

word(astante,  a,s,t,a,n,t,e).
word(astoria,  a,s,t,o,r,i,a).
word(baratto,  b,a,r,a,t,t,o).
word(cobalto,  c,o,b,a,l,t,o).
word(pistola,  p,i,s,t,o,l,a).
word(statale,  s,t,a,t,a,l,e). 

crossword(V1,V2,V3,H1,H2,H3):- word(V1, V11,V12,V13,V14,V15,V16,V17),
                               word(H1, H11,V12,H13,H14,H15,H16,H17),
                               word(H2, H21,V14,H23,H24,H25,H26,H27),
                               word(H3, H31,V16,H33,H34,H35,H36,H37),

                               word(V2, V21,V22,V23,V24,V25,V26,V27),
                               word(H1, H11,H12,H13,V22,H15,H16,H17),
                               word(H2, H21,H22,H23,V24,H25,H26,H27),
                               word(H3, H31,H32,H33,V26,H35,H36,H37),

                               word(V3, V31,V32,V33,V34,V35,V36,V37),
                               word(H1, H11,H12,H13,H14,H15,V32,H17),
                               word(H2, H21,H22,H23,H24,H25,V34,H27),
                               word(H3, H31,H23,H33,H34,H35,V36,H37). 
Run Code Online (Sandbox Code Playgroud)

(如果格式不正确,我很抱歉,但我仍然不知道什么是正确的缩进样式Prolog).

当然,事件,如果我的想法似乎是正确的(至少对我而言),这段代码返回No,我不知道为什么.

有什么暗示吗? …

prolog crossword

6
推荐指数
2
解决办法
5232
查看次数

使用 Azure Durable Functions 实现“即发即忘”后台作业

我有一个用例,要求我启动一些 Azure Durable Functions,而不关心其结果,我想知道我的方法是否正确。

这是我所处的场景:

  • 函数A使用一个HttpTrigger
  • 函数B使用一个ActivityTrigger

这是我的工作流程:

  • A被调用,需要做一些业务逻辑
  • 除了这个业务逻辑之外,我还需要执行一项可能失败也可能不会失败的长时间后台任务。我不关心结果,但我需要每次A调用时运行此任务。
  • A需要尽快返回,这就是为什么我等不及后台任务完成
  • BA返回时处理此后台任务

我在网上找到的所有耐用功能示例都显示如下内容:

await starter.StartNewAsync("BackgroundDurableFunction", data)
Run Code Online (Sandbox Code Playgroud)

我的问题是,我不想要await持久功能,但我需要它在后台运行并执行其操作(主要是网络 I/O)。

为了避免等待这个持久功能,我最终采用了以下解决方法:

Task.Factory.StartNew(() => starter.StartNewAsync("BackgroundDurableFunction", data));
Run Code Online (Sandbox Code Playgroud)

这似乎工作得很好,因为我不需要await任何东西,但在阅读了Task.Factory.StartNew 的危险之后,我有点担心这可能是一个危险的解决方案。

所以,问题是:启动持久功能并让它在后台运行而不关心其结果(并且没有关于不等待任务的警告)的正确方法是什么?

c# azure-functions azure-durable-functions

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