Если это только два массива чисел или строк, это быстрый однострочный
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
Необходимо удостовериться, что 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>
Действительно ли Холст крайне важен для Вашего окна? В противном случае попытайтесь удалить его и сохраните Сетку как основную панель. Холст не имеет никакого размера, если не определено, в то время как Сетка обычно занимает все свободное место. В Холсте Сетка не будет иметь никакого свободного места.
Установка HorizontalAlignment для Протяжения, и Ширина к Автоматическому включению пользовательский элемент управления достигают желаемых результатов?
К какому контейнеру Вы добавляете UserControl? Обычно, когда Вы добавляете средства управления к Сетке, они будут простираться для заполнения свободного места (если их строка/столбец не будет ограничена к определенной ширине).
Холст в 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.
вместо этого используют ширину и высоту в управлении пользователями, используйте Minheight и Minwidth. Затем вы можете настроить UC хорошо, и смогу растянуть внутри другого окна.
Ну, как я видением в WPF Microsoft, сделал повторное мышление о свойствах Windows и поведении, но до сих пор я ничего не пропустил от форм WELDS Windows, в WPF элементы управления, но в новой точке Посмотреть.