2015-07-25 5 views
1

Я решил это самСоздание кнопки перекрываться в МОФ C#

Все, что мне нужно было Маржа собственности и новый Толщина стенок

Я пытаюсь сделать кнопки (ЧТО Я СДЕЛАЛ С ИСПОЛЬЗОВАНИЕМ C# во время выполнения) перекрываются внутри элемента ItemsControl и все же оставляют небольшое пространство, например, что вы делаете, когда кладете игральные карты в кучу; я должен уметь видеть верхнюю часть каждой карты.

как это сделать через C#?

<Grid> 
    <Grid HorizontalAlignment="Left" Height="500" VerticalAlignment="Top" Width="320"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="75*" Name="Row1"/> 
      <ColumnDefinition Width="75*" Name="Row2"/> 
      <ColumnDefinition Width="75*" Name="Row3"/> 
      <ColumnDefinition Width="75*" Name="Row4"/> 
     </Grid.ColumnDefinitions> 
     <ItemsControl HorizontalAlignment="Left" Height="500" VerticalAlignment="Top" Width="75" Grid.Column="0" Name="Stack1"/> 
     <ItemsControl HorizontalAlignment="Left" Height="500" VerticalAlignment="Top" Width="75" Grid.Column="1" Name="Stack2"/> 
     <ItemsControl HorizontalAlignment="Left" Height="500" VerticalAlignment="Top" Width="75" Grid.Column="2" Name="Stack3"/> 
     <ItemsControl HorizontalAlignment="Left" Height="500" VerticalAlignment="Top" Width="75" Grid.Column="3" Name="Stack4"/> 
    </Grid> 

Это мой «контейнер» для удержания кнопок. каждый ItemsCntrol будет содержать до 13 кнопок, и мне нужно, чтобы они были на коленях, но не полностью спрятали кнопку раньше. как это:

http://i.stack.imgur.com/awrSg.png

+0

Я думаю, это может быть полезно для u: http: //stackoverflow.com/questions/12531860/create-a-usercontrol-with-overlapping-content –

+0

нет, потому что это не то, что я пытаюсь сделать. подумайте о картах, которые они не перебирают над другими вещами, которые они только что присутствуют на столе. Мне просто нужны кнопки, чтобы идти один поверх предыдущего. – tjw

+0

привет, ищите n книгу под названием wpf control development unleashed. там, в разделе о пользовательских панелях, вы можете увидеть, как создать панель, которая делает подобное перекрытие. в основном я бы создал панель, которая в проходе аранжировки сделает верхние значения элементов такими же, как и -5. –

ответ

0

Вы имеете в виду, как это?

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 

     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <TextBox Name="username" HorizontalAlignment="Left" Height="23" Margin="142,70,0,0" TextWrapping="Wrap" Text="{Binding Path=UserName, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="120"/> 
     <Button Content="Button" HorizontalAlignment="Left" Command="{Binding LoginCommand, UpdateSourceTrigger=PropertyChanged}" Margin="192,144,0,0" VerticalAlignment="Top" Width="75"/> 
     <Button Content="Button" HorizontalAlignment="Left" Command="{Binding LoginCommand, UpdateSourceTrigger=PropertyChanged}" Margin="192,154,0,0" VerticalAlignment="Top" Width="75"/> 
     <Button Content="Button" HorizontalAlignment="Left" Command="{Binding LoginCommand, UpdateSourceTrigger=PropertyChanged}" Margin="192,164,0,0" VerticalAlignment="Top" Width="75"/> 
     <Button Content="Button" HorizontalAlignment="Left" Command="{Binding LoginCommand, UpdateSourceTrigger=PropertyChanged}" Margin="192,174,0,0" VerticalAlignment="Top" Width="75"/> 
     <Button Content="Button" HorizontalAlignment="Left" Command="{Binding LoginCommand, UpdateSourceTrigger=PropertyChanged}" Margin="192,184,0,0" VerticalAlignment="Top" Width="75"/> 
     <Button Content="Button" HorizontalAlignment="Left" Command="{Binding LoginCommand, UpdateSourceTrigger=PropertyChanged}" Margin="192,194,0,0" VerticalAlignment="Top" Width="75"/> 
     <Button Content="Button" HorizontalAlignment="Left" Command="{Binding LoginCommand, UpdateSourceTrigger=PropertyChanged}" Margin="192,204,0,0" VerticalAlignment="Top" Width="75"/> 
    </Grid> 
</Window> 
+0

Я добавляю кнопки с помощью C# (по уважительным причинам), поэтому мне нужно сделать их перекрывающимися, но когда я просто использую функцию добавления, она автоматически помещается в слот прямо под предыдущей кнопкой, и мне нужно, чтобы они перекрывались. – tjw

+0

, затем щелкните правой кнопкой мыши элемент управления и найдите заказ в списке и нажмите, чтобы открыть его. попробуй. это будет работать. –

+0

, что поможет только в том случае, если кнопки всегда есть, но они не существуют до тех пор, пока программа не начнет работать, и все, что было сделано, переместило элемент из родительского объекта. – tjw

0

Измените панель, используемую вашим элементом ItemsControl.

<ItemsControl> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <Grid/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <Button/> 
    <Button/> 
</ItemsControl> 

Вы можете использовать любую панель, предоставленную WPF, или написать свой собственный код и использовать его таким образом.

+0

, если я хочу, чтобы следующая кнопка была 20 пикселей вниз, как я могу это сделать? (xaml или C#) – tjw

+0

Вам понадобится код для пользовательской панели для этого, не так уж сложно, он вам еще нужен? –

0

ok wait позволяет сделать его простым: 1. создайте кнопки, которые вы хотите. 2. теперь поместите первое над другим или в нужное положение, 3. Из двух кнопок вы просто накладываетесь на один, который хотите быть над другим, щелкните правой кнопкой мыши по нему и закажите его как переднюю. 4. Повторите процесс для всех ваших кнопок. и теперь это в пользовательском интерфейсе сначала будет выглядеть именно так, как вы хотите. 5 Теперь, когда вы запустите его, вы найдете его точно так, как хотите.

+0

проверить жирный шрифт – tjw