Как расширить по ширине пользовательский элемент управления WPF к его окну?

Если это только два массива чисел или строк, это быстрый однострочный

const array1 = [1, 2, 3];
const array2 = [1, 3, 4];
console.log(array1.join(',') === array2.join(',')) //false

const array3 = [1, 2, 3];
const array4 = [1, 2, 3];
console.log(array3.join(',') === array4.join(',')) //true
42
задан Victor Rodrigues 21 January 2009 в 04:30
поделиться

6 ответов

Необходимо удостовериться, что usercontrol не установил, это - ширина в xaml файле usercontrol. Просто удалите Ширину = "..." от него, и Вы хороши для движения!

РЕДАКТИРОВАНИЕ: Это - код, с которым я протестировал его:

SOUserAnswerTest.xaml:

<UserControl x:Class="WpfApplication1.SOAnswerTest"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="300">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Name="LeftSideMenu" Width="100"/>
            <ColumnDefinition Name="Middle" Width="*"/>
            <ColumnDefinition Name="RightSideMenu" Width="90"/>
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Column="0">a</TextBlock>
        <TextBlock Grid.Column="1">b</TextBlock>
        <TextBlock Grid.Column="2">c</TextBlock>
    </Grid>
</UserControl>

Window1.xaml:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplication1"
    Title="Window1" Height="300" Width="415">
    <Grid>

        <local:SOAnswerTest Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="2"/>
    </Grid>
</Window>
43
ответ дан Arjan Einbu 4 August 2019 в 19:50
поделиться

Действительно ли Холст крайне важен для Вашего окна? В противном случае попытайтесь удалить его и сохраните Сетку как основную панель. Холст не имеет никакого размера, если не определено, в то время как Сетка обычно занимает все свободное место. В Холсте Сетка не будет иметь никакого свободного места.

7
ответ дан Bubblewrap 4 August 2019 в 19:50
поделиться

Установка HorizontalAlignment для Протяжения, и Ширина к Автоматическому включению пользовательский элемент управления достигают желаемых результатов?

2
ответ дан Jason Miesionczek 4 August 2019 в 19:50
поделиться

К какому контейнеру Вы добавляете UserControl? Обычно, когда Вы добавляете средства управления к Сетке, они будут простираться для заполнения свободного места (если их строка/столбец не будет ограничена к определенной ширине).

1
ответ дан Andy 4 August 2019 в 19:50
поделиться

Холст в WPF не оказывает много автоматической поддержки расположения. Я пытаюсь избегать их поэтому (HorizontalAlignment, и VerticalAlignment не работают как ожидалось), но я заставил Ваш код работать с этими незначительными модификациями (связывающий Ширину и Высоту управления к ActualWidth/ActualHeight холста).

<Window x:Class="TCI.Indexer.UI.Operacao"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tci="clr-namespace:TCI.Indexer.UI.Controles"
Title=" " MinHeight="550" MinWidth="675" Loaded="Load" 
ResizeMode="NoResize" WindowStyle="None" WindowStartupLocation="CenterScreen" 
WindowState="Maximized" Focusable="True" x:Name="windowOperacao">

<Canvas x:Name="canv">
    <Grid>
        <tci:Status x:Name="ucStatus" Width="{Binding ElementName=canv
                                                    , Path=ActualWidth}" 
                                      Height="{Binding ElementName=canv
                                                    , Path=ActualHeight}"/> 
        <!-- the control which I want to stretch in width -->
    </Grid>
</Canvas>

Холст является проблемой здесь. Если Вы на самом деле не используете функции предложения холста с точки зрения расположения, или Z-порядок "сплющивание" (думайте о сглаживать команде в PhotoShop), я рассмотрел бы использование управления как Сетка вместо этого, таким образом, Вы не заканчиваете тем, что имели необходимость изучить причуды управления, которое работает по-другому, чем Вы приехали для ожидания с WPF.

21
ответ дан Noctis 4 August 2019 в 19:50
поделиться

вместо этого используют ширину и высоту в управлении пользователями, используйте Minheight и Minwidth. Затем вы можете настроить UC хорошо, и смогу растянуть внутри другого окна.

Ну, как я видением в WPF Microsoft, сделал повторное мышление о свойствах Windows и поведении, но до сих пор я ничего не пропустил от форм WELDS Windows, в WPF элементы управления, но в новой точке Посмотреть.

1
ответ дан 26 November 2019 в 22:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: