<html>
<body>
<iframe src='index.html' id='frame'></iframe>
<script type='text/javascript'>
document.getElementById("frame").onload = function () {
var FRAM = document.getElementById("frame");
var DOC = FRAM.contentDocument;
alert(FRAM.contentDocument.body);
}
</script>
</body>
</html>
в class1
if(open == null)
{
open= new Window();
open.show();
setter.set(open);
}
------------------Отдельный класс
public class setter {
private static Window win;
public static void set(Window winnew){
win = winnew;
}
public static Window get(){
return win;
}
}
---------------------------
в class2
setter.get().jLabel2.setText("Text");
// класс, который эмулирует нажатие клавиш в любое активное окно
class DirectKeyPress
{
[DllImport("User32.dll")] // подключение системной библиотеки
public static extern uint SendInput(uint numberOfInputs, [MarshalAs(UnmanagedType.LPArray, SizeConst = 1)] INPUT[] input, int structSize); // функция, которая отправляет запрос на идентификацию и активацию действии клавиши
[DllImport("user32.dll")] // подключение системной библиотеки
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); // функция для определении окна
[DllImport("User32.dll")] // подключение системной библиотеки
public static extern int SetForegroundWindow(IntPtr hWnd); // функция установки фокуса для окна
[DllImport("User32.dll")] // подключение системной библиотеки
public static extern int ShowWindow(IntPtr hWnd, int cmdShow); // функция активации окна
[StructLayout(LayoutKind.Sequential)] //Для ручного расположения полей в памяти в порядке объявления
public struct MOUSEINPUT // структура для эмуляции мыши
{
int dx;
int dy;
uint mouseData;
uint dwFlags;
uint time;
IntPtr dwExtraInfo;
};
[StructLayout(LayoutKind.Sequential)] //Для ручного расположения полей в памяти в порядке объявления
public struct KEYBDINPUT // структура для эмуляции клавиатуры
{
public ushort wVk;
public ushort wScan;
public uint dwFlags;
public uint time;
public IntPtr dwExtraInfo;
};
[StructLayout(LayoutKind.Sequential)] //Для ручного расположения полей в памяти в порядке объявления
public struct HARDWAREINPUT // структура для эмуляции подключённого внешнего устройства
{
uint uMsg;
ushort wParamL;
ushort wParamH;
};
[StructLayout(LayoutKind.Explicit)] //Для указания размера каждого поля
public struct INPUT // структура для выбора типа устройства
{
[FieldOffset(0)] // задаем 0 байт для переменной type
public int type;
[FieldOffset(4)] // задаем 4 байта для структуры MOUSEINPUT
public MOUSEINPUT mouse;
[FieldOffset(4)] // задаем 4 байта для структуры KEYBDINPUT
public KEYBDINPUT keyboard;
[FieldOffset(4)] // задаем 4 байта для структуры HARDWAREINPUT
public HARDWAREINPUT hardware;
};
const uint KEYEVENTF_KEYUP = 0x0002; // событие Up
const uint KEYEVENTF_SCANCODE = 0x0008; // событие Down + установка типа выбора определения клавиши
public void Main()
{
INPUT[] inputs = new INPUT[1];
inputs[0].type = 1; // выбрана клавиатура
inputs[0].keyboard.dwFlags = KEYEVENTF_SCANCODE; // Down
inputs[0].keyboard.wScan = 42; // скэн код клавиши
SendInput(1, inputs, Marshal.SizeOf(inputs[0])); // эмулируем нажатие
inputs[0].type = 1;
inputs[0].keyboard.dwFlags = KEYEVENTF_SCANCODE;
inputs[0].keyboard.wScan = 30;
SendInput(1, inputs, Marshal.SizeOf(inputs[0]));
inputs[0].type = 1;
inputs[0].keyboard.wScan = 30;
inputs[0].keyboard.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP; // Up
SendInput(1, inputs, Marshal.SizeOf(inputs[0]));
inputs[0].type = 1;
inputs[0].keyboard.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
inputs[0].keyboard.wScan = 42;
SendInput(1, inputs, Marshal.SizeOf(inputs[0]));
}
}
#region Класс загрузки изображения в меню
public class Images
{
public string IMGFast { get; set; }
public string IMGFull { get; set; }
public string BackColorFast { get; set; }
public string BackColorFull { get; set; }
}
#endregion
DataContext = new Images[]
{
new Images
{
IMGFast ="ok.png",
BackColorFast = "#25FFFFFF",
IMGFull ="",
BackColorFull = ""
}
};
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style x:Key="DelAll">
<Setter Property="Button.Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border Name="Head">
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Fill="Transparent" />
</Border>
<Label Name="NameLable" Content="Удалить всё" FontStyle="Italic" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Red"></Label>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Head" Property="Background" Value="#3500ACFF"/>
<Setter TargetName="Head" Property="BorderBrush" Value="#FF00ACFF"/>
<Setter TargetName="Head" Property="BorderThickness" Value="1,1,1,1"/>
<Setter TargetName="NameLable" Property="Foreground" Value="Blue"/>
</Trigger>
<Trigger Property="IsMouseDirectlyOver" Value="true">
<Setter TargetName="NameLable" Property="Foreground" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="Del">
<Setter Property="Button.Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border Name="Head">
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Fill="Transparent" />
</Border>
<Label Name="NameLable" Content="Удалить" FontStyle="Italic" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Yellow"></Label>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Head" Property="Background" Value="#3500ACFF"/>
<Setter TargetName="Head" Property="BorderBrush" Value="#FF00ACFF"/>
<Setter TargetName="Head" Property="BorderThickness" Value="1,1,1,1"/>
<Setter TargetName="NameLable" Property="Foreground" Value="Green"/>
</Trigger>
<Trigger Property="IsMouseDirectlyOver" Value="true">
<Setter TargetName="NameLable" Property="Foreground" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Window.Background>
<ImageBrush/>
</Window.Background>
<Grid>
<Button Style="{StaticResource DelAll}" HorizontalAlignment="Left" Width="150" Height="50" Margin="95,49,0,0" VerticalAlignment="Top"/>
<Button Style="{StaticResource Del}" HorizontalAlignment="Left" Width="150" Height="50" Margin="95,200,0,0" VerticalAlignment="Top"/>
</Grid>
</Window>
<Window.Resources>
<Style x:Key="MenuItem"> <!--Стиль меню-->
<Setter Property="MenuItem.Foreground" Value="Lime"></Setter>
<Style.Triggers>
<Trigger Property="MenuItem.IsMouseOver" Value="true">
<Setter Property="MenuItem.Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
<ControlTemplate x:Key="{x:Static MenuItem.TopLevelHeaderTemplateKey}" TargetType="{x:Type MenuItem}"> <!--Стиль подменю-->
<Grid>
<Border Height="25" Width="80" Name="Head">
<ContentPresenter ContentSource="Header" RecognizesAccessKey="True" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<Popup IsOpen="{TemplateBinding IsSubmenuOpen}" AllowsTransparency="True" PopupAnimation="Fade">
<StackPanel IsItemsHost="True" Background="#01FFFFFF" Focusable="True"/>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="true">
<Setter TargetName="Head" Property="Background" Value="#3500ACFF"/>
<Setter TargetName="Head" Property="BorderBrush" Value="#FF00ACFF"/>
<Setter TargetName="Head" Property="BorderThickness" Value="1,1,1,1"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Resources>
<Grid>
<Menu VerticalAlignment="Top" Background="Transparent"> <!--Меню-->
<MenuItem Style="{StaticResource MenuItem}" Header="Настройки">
<MenuItem Style="{StaticResource MenuItem}" Header="Свойства"/>
<MenuItem Style="{StaticResource MenuItem}" Header="О программе"/>
<MenuItem Style="{StaticResource MenuItem}" Header="Выход"/>
</MenuItem>
</Menu>
</Grid>