2012-08-24 49 views
0

我有一个奇怪的场景。将StackPanel的实例绑定到XAML

我需要在代码隐藏中创建一个StackPanel。然后我需要将这个stackpanel绑定到xaml中的UI。

通常我只是使用ContentControl来做到这一点。但它有焦点问题(它不能阻止从标签顺序焦点=“假”没有效果)。我也尝试了一个用户控件,但是它有相同的问题。

所以我需要使用一些其他类型的控制。我已经决定了一个小组。 (StackPanel看起来和任何面板一样好。)

但是,我似乎无法找到一种方法来绑定到我的Xaml中的“In Code”堆栈面板中?

有没有办法做到这一点? (不使用一个或ContentControl中用户控件)

+1

你为什么要这样做? –

+0

@ H.B。你只是好奇吗?或者您是否需要更多信息来帮助我解决问题?如果只是好奇:我弥合了AvalonDock的MVVM实现和Prism之间的差距。如果你需要更多的信息来帮助我解决这个问题,那么请在你的问题中更具体。 – Vaccano

+0

我只是经常质疑任何隐藏代码的恶作剧,因为人们喜欢无缘无故地在脚下自我射击。因为我不知道你的问题的具体情况,我不能评论这是否是一个好主意,开始... –

回答

1

它不能从标签顺序可调焦=“假”封锁没有效果

什么IsTabStop

此外,最轻量级的使用是ContentPresenter这是我会用。

+0

IsTabStop导致内容控制中的所有项目也不在标签页中。 – Vaccano

+0

@Vaccano:嗯,我从来没有见过任何不是输入控件的控件,而是无论如何都是制表符。 –

+0

我正在向它注入一个棱镜区域。所以它里面有很多输入控件。 – Vaccano

0

在KAXAML中对此进行了测试,当按下TAB时,焦点不会转到ContentPresenter或ContentControl中定义的任何项目。

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <StackPanel> 
    <TextBox>aaaaa</TextBox> 
    <TextBox>bbbbb</TextBox> 
    <ContentControl Focusable="False"> 
    <ContentControl.ContentTemplate> 
    <DataTemplate> 
    <StackPanel Focusable="False" Background="Red" Width="100" Height="50"></StackPanel> 
    </DataTemplate> 
    </ContentControl.ContentTemplate> 
    </ContentControl> 
    <ContentControl Focusable="False"> 
    <ContentControl.ContentTemplate> 
    <DataTemplate> 
    <TextBox Focusable="False">hello</TextBox> 
    </DataTemplate> 
    </ContentControl.ContentTemplate> 
    </ContentControl> 
    <ContentPresenter Focusable="False"> 
    <ContentPresenter.Content> 
    <TextBox Focusable="False">hello</TextBox> 
    </ContentPresenter.Content> 
    </ContentPresenter> 
    <TextBox>ccccc</TextBox> 
    <TextBox>ddddd</TextBox> 
    </StackPanel> 
</Page> 
+0

奇怪。那么在我的应用程序呢。这里有几个其他帖子有相同的问题:http://forums.silverlight.net/p/183027/420261.aspx http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/ ae32d24e-ecc5-4e94-87d8-f3da2ff91ae0 / – Vaccano