2013-05-06 3 views
1

(vs express2012, WPF, .net4.5) Я новичок в разработке C#. Я в настоящее время разрабатываю приложение для Windows с помощью kinect SDK 1.7Добавить свойства в KinectTileButton

Я хочу, чтобы стиль KinectTileButton был во время выполнения, но не уверен, как, я пробовал различные решения, найденные на Stack, но никто не работал, я предполагаю, что это, вероятно, связано к моему недостатку знаний C#, поэтому, пожалуйста, предоставьте ответы на макеты.

Часть XAML разметки:

<k:KinectTileButton Background="{x:Null}" 
    BorderThickness="3" Height="Auto" Margin="50,0" 
    BorderBrush="#FF181919" Width="Auto" /> 

проблема заключается в КТБ-х создаются динамически во время выполнения. В коде позади:

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; 
} 

Я внес изменения в код, может быть, это может помочь тем, кто развивается с MS Kinect, которые Арент, что больше на C#.

После небольшого лужения и некоторую помощь от этого, как я стиль в КТБ

var button = new KinectTileButton(); 
button.Background = null; 
button.Margin = new Thickness(40); 
button.Height = Double.NaN; 
button.Width = Double.NaN; 
button.BorderBrush = Brushes.Transparent; 
+0

Как вы хотите стиль KTB? –

+0

Как стиль, отображаемый в разметке xaml. – Det

+0

'button.Background = null; button.BorderThickness = 3; button.Height = Double.NaN; 'aso .. –

ответ

0

Я не уверен, где вы создаете ваш 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> 

Codebehind:

var button = new KinectTileButton 
{ 
    Style = FindResource("KinectButtonStyle") as Style 
} 

В самом деле, если бы вы были удалить Key из Style, было бы получить применяется неявно и не будет необходимо выполнить поиск FindResource(...). Я не знаю, желательно это или нет для вас.

Смежные вопросы