заставить пользовательский элемент управления распространяться на все заданное пространство - PullRequest
2 голосов
/ 13 февраля 2011

У меня есть какой-то пользовательский элемент управления, который я помещаю в оконный элемент управления, я не хочу иметь фиксированный размер в пользовательском элементе управления, я хочу, чтобы он занимал все пространство, в котором он был. Что я должен добавить к своему коду?

   <UserControl x:Class="DBTool.View.SelectDataBase"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            >


    <UserControl.Background >
        <ImageBrush ImageSource="..\Resources\DBSelection.jpg" ></ImageBrush >
    </UserControl.Background >

    <Grid>
     <ItemsControl FontWeight="Normal" ItemsSource="{Binding Path=AvailableBeanTypes}" >
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <RadioButton
              Content="{Binding Path=DisplayName}"
              IsChecked="{Binding Path=IsSelected}"
              GroupName="BeanType"
              Margin="2,3.5"
              />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Grid>
</UserControl>

Код моего окна

<Window x:Class="DBTool.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:View="clr-namespace:DBTool.View"
        xmlns:ViewModel="clr-namespace:DBTool.ViewModel"
        Title="MainWindow" Height="332" Width="528"  >

    <Window.Resources>

        <!-- These four templates map a ViewModel to a View. -->
        <DataTemplate DataType="{x:Type ViewModel:SelectDataBaseViewModel}">
            <View:SelectDataBase />
        </DataTemplate>

        <DataTemplate DataType="{x:Type ViewModel:MySqlPageViewModel}">
            <View:MySqlPageView />
        </DataTemplate>



    </Window.Resources>

            <DockPanel LastChildFill="True" >


        <ToolBar Height="26" HorizontalAlignment="Stretch" VerticalAlignment="Top" Name="toolBar1"  Width="Auto" DockPanel.Dock="Top"  />

        <Grid  VerticalAlignment="Bottom" DockPanel.Dock="Bottom"  >
            <Grid.RowDefinitions>
                <RowDefinition/>
            </Grid.RowDefinitions>

            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>

            <Button Grid.Row="0" Grid.Column="4" Background="Azure" Margin="10"   Command="{Binding Path=MoveNextCommand}" > Next </Button>

            <Button Grid.Row="0" Grid.Column="3" Background="Azure" Margin="10" Command="{Binding Path=MovePreviousCommand}"> Previous </Button>

            <TextBox Name="txtInput" Grid.Column="1"/>
            <Label Content="{Binding Text, ElementName=txtInput, 
                     UpdateSourceTrigger=PropertyChanged}" Grid.Column="2" />


        </Grid>
       <!-- <View:SelectDataBase x:Name="DetailView"/>-->
        <Border Background="White" Grid.Column="1" Grid.Row="0">
            <HeaderedContentControl 
        Content="{Binding Path=CurrentPage}" 
        Header="{Binding Path=CurrentPage.DisplayName}" 
        />
        </Border>
    </DockPanel>


</Window>

enter image description here

Но я хочу, чтобы изображение заняло там все белое пространство.

1 Ответ

2 голосов
/ 13 февраля 2011

вам нужно узнать о панелях (сетка, стек и т. Д.) И их свойствах. Свойства высоты и ширины, и, если я помню, в wpf есть значение "*", которое делает это в процентах.

это учебник по wpf agreat

http://www.wpftutorial.net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...