给KinectTileButton添加属性
本文关键字:属性 添加 KinectTileButton | 更新日期: 2023-09-27 18:12:14
(vs express2012, WPF, net4.5)我是c#开发的新手。我目前正在使用kinect SDK 1.7开发一款windows应用
我想样式一个KinectTileButton在运行时,但不确定如何,我已经尝试了各种解决方案,但没有工作,我认为这可能是由于我缺乏c#知识,所以请提供答案的傻瓜。
xaml标记是:
<k:KinectTileButton Background="{x:Null}"
BorderThickness="3" Height="Auto" Margin="50,0"
BorderBrush="#FF181919" Width="Auto" />
问题是KTB是在运行时动态创建的。在代码后面:
for (var index = 0; index < 300; ++index)
{
var button = new KinectTileButton ();
this.Width = Double.NaN;
Image img = new Image();
if (files[fileindex].FullName.EndsWith(".jpg"))
img.Source = new BitmapImage(new Uri(files[fileindex].FullName));
button.Content = img;
this.wrapPanel.Children.Add(button);
fileindex++;
if (fileindex >= files.Length)
fileindex = 0;
}
我修改了代码,也许它可以帮助那些不擅长c#的微软kinect开发人员。
经过一些修补和一些帮助,这是我如何样式的KTB
var button = new KinectTileButton ();
button.Background = null;
button.Margin = new Thickness(40);
button.Height = Double.NaN;
button.Width = Double.NaN;
button.BorderBrush = Brushes.Transparent;
我不确定你在哪里创建你的KinectTileButtons
,但我会在你的一个外部控件(Window
)的代码背后的假设下工作。您可以在XAML
中创建样式,然后使用FindResource(...)
在代码隐藏中分配它。如果你这样做,你将能够重用多个按钮的样式。
XAML :
<Window>
...
<Window.Resources>
<Style x:Key="KinectButtonStyle" TargetType=k:KinectTileButton>
<Setter Property="Margin" Value="40">
<Setter Property="BorderBrush" Value="Transparent" />
...
</Style>
</Window.Resources>
</Window>
后台代码:var button = new KinectTileButton
{
Style = FindResource("KinectButtonStyle") as Style
}
事实上,如果您要从Style
中删除Key
,它将隐式应用,并且您不需要执行FindResource(...)
查找。我不知道你是否愿意。